红包概率抽取算法精确到指定范围内,
现在的算法是通过random随机数判断属于哪个范围内进行抽奖计算,
统计5K条结果显示0.2-0.5(40%)中奖概率比1-2(10%)中奖概率高!
查找原因如下:
算法里是在基数的基础上向上浮动100(分),落在0.2-0.5范围内的中奖金额浮动1元后落在了1-2范围内
导致0.2-0.5(40%)中奖概率比1-2(10%)中奖概率高!
修改方案如下:
生成1W个随机数,并将1W按比例划分,随机数落在哪个端就使用哪个段里的范围,再在范围内随机一个数作为中奖金额!
根本原因:
这个项目是我半路接手的,对先前的需求不了解,原先的需求是基数向上浮动1元,现在改成金额范围内浮动!当时在改的时候只给我发了一封邮件!沟通不畅导致!等我跟业务沟通算法改成这样后,他们的回复是就要这样的!搞了个大乌龙么这是!汗!