1、奖项以及中奖概率设置
奖项数量如下(不同的奖项可以是相同的奖不影响结算的结果):
奖项一:100
奖项二:100
奖项三:100
奖项四:200
奖项五:500
设置总的中奖的概率为10%,不中奖的概率为90%,
抽奖的算法核心:现有一万个球,球的编号是1-10000,其中数字1-1000范围内的球代表的为中奖(1万乘以10%=1000 范围刚好是1-1000),1001-10000范围内的球不中奖(1万乘以90%=9000 范围刚好1001-10000),每次抽奖抽中的数字有两种可能:
1、1-1000中奖,
2、1001-10000不中奖,
若是结果2处理比较简单直接返回没中奖,若是结果1需要再计算会抽到哪一种奖项
2、中奖时计算会抽中哪一种奖项
总的中奖率设置为10%,不同奖项奖品总数:1000(若某奖项库存已空,则该奖项不参加抽中概率,同时其他奖项中奖概率计算用到的奖项总数=奖项总数-该奖项总数量),中奖时不同奖项的中奖率计算如下:
奖项一:100/1000=1000/10000
奖项二:100/1000=1000/10000
奖项三:1000/1000=1000/10000
奖项四:200/1000=2000/10000
奖项五:500/1000=5000/10000
现仍有一万个球,编号仍是1-10000,其中
编号1-1000(1000个球)对应奖项一抽中概率
编号1001-2000(1000个球)对应奖项二中奖概率
编号2001-3000(1000个球)对应的奖项三中奖概率
编号3001-5000(2000个球)对应奖项三中奖概率
编号5001-10000(6000个球)对应奖项四中奖概率
- 抽奖具体计算流程如下:
- 从一万个球里取球,根据总中奖概率(这里是10%)查看否抽中奖项,假设抽中数字为502,中抽奖结果中奖
- 检查各个奖项的总数(不是存在总数),以及是否还有库存,没有库存的奖项不参加具体的抽奖活动,假设将项目五 已经抽完其余的奖项抽中的概率如下:
奖项一:100/500=2000/10000
奖项二:100/500=2000/10000
奖项三:1000/500=2000/10000
奖项四:200/500=4000/10000
- 确定所中奖项,仍从一万个球里随机取,看所取数字落在那个奖项的编号区间
4、适用于指定用户单次抽奖和多次抽奖