公司活动,概率抽奖【不限定总人数,不限定中奖数量】设计

 

BEGIN;

 

需求:
      如下中奖率
          一等奖 5%
          二等奖 30%
          安慰奖 65%

 

 

 

设计:
以随机数实现,并做统计防线,控制概率的准确性


1、以100个数字为基准,实现百分比数。

 

一等奖 {1,2,3,4,5}
二等奖 {6,7,...,29,30}
安慰奖 {31,32,...,99,100}


2、每次抽奖,获取一个1-100的随机数,并判断属于哪个奖品

 

if(r > 30) 安慰奖
else if(r > 5) 二等奖
else 一等奖


3、统计此次中奖的奖品已经中奖的人数,以及当前抽奖的总人数,计算出当前此次奖品的已中概率,判断是否还能再中此类奖品,若不能,则默认给安慰奖,假设当前中奖的奖品为 二等奖

 

当前二等奖中奖率 = 当前中二等奖奖品总数 / 当前抽奖总数
if(当前二等奖中奖率 < 配置概率)
// 可以中二等奖奖品
else
// 二等奖奖品已经中完,默认给中安慰奖



例:
    当前中二等奖奖品总数: 26
    当前抽奖总数:87
    当前二等奖中奖率 = 26 / 87 = 0.2988 = 29.88%
    0.2988 < 0.3
    结果:中奖

例:
    当前中二等奖奖品总数: 27
    当前抽奖总数:87
    当前二等奖中奖率 = 27 / 87 = 0.3103 = 31.03%
    0.3103 > 0.3
    结果:已经不能再中奖,默认给安慰奖

 

 

 

 

 

 

END;

 

技术交流

 

posted @ 2022-04-08 18:03  yzChen  阅读(99)  评论(0编辑  收藏  举报