很早以前看到了这个算法,忘记叫什么名字了,这里就索性叫抽奖算法吧,知道的朋友不要扔砖头
一般抽奖的时候都分为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 |