有关抽奖的一个算法

很早以前看到了这个算法,忘记叫什么名字了,这里就索性叫抽奖算法吧,知道的朋友不要扔砖头

 

一般抽奖的时候都分为12345等奖,1等奖出现的概率最小,5等奖出现概率最大。

分为以下几步:

1、用一个变量标识下各个奖的登记,这个好像是叫做“权重”吧,一等奖记为1,二等奖。。。。五等奖记为5。

2、求得权重总和,记为n;

3、每个奖项都产生一个随机数,随机数介于权重和权重和n之间,记为m;

4、求的各个权重+m的和,然后从大到小排序。最大的记为本次抽奖结果。

下面给个表看下

奖项 一等奖 二等奖 三等奖 四等奖 五等奖
权重 1 2 3 4 5
权重和n 15 15 15 15 15
随机数m m=r(1,15) m=r(2,15) m=r(3,15) m=r(4,15) m=r(5,15)
总和 1+m 2+m 3+m 4+m 5+m
           

 

 

 

 

 

 

 

 

 

 

posted @ 2012-11-12 09:20 冰封一夏 阅读(...) 评论(...) 编辑 收藏