当前位置: 首页 > 后端技术 > PHP

PHP和JS中奖概率算法

时间:2023-03-29 16:19:57 PHP

经典概率算法。现在有数组:[10,20,30,40]。假设中奖概率为:特等奖10%,一等奖20%,二等奖30%,三等奖40%,共100%。算法开始时,从数组中选取一个值$value,从1-100的概率空间中随机选取一个数$rand。比较$value和$rand,如果$rand在$value的概率范围内,则直接返回$value对应的key。如果不是,则从概率空间的值中减去$value。本例中,第一次判断后减去10,即第二次在1-90范围内进行筛选。这样一来,在筛选结束的时候,总会有符合要求的号码。相当于要去摸一个盒子里的东西,第一个没有,第二个没有,第三个还没有,那么最后一个一定是。这个算法很简单,效率也很高。PHP实现$value){$rand=mt_rand(1,$sum);如果($rand<=$value){$result=$key;休息;}else{$sum-=$value;}}未设置($arr);返回$结果;}用法示例:$a=[10,20,30,40];//输出3的概率最高echo'PHP:'.getRand($a);Javascript实现使用示例://使用示例,输出3的概率最高vara=[10,20,30,40];文档.write('
Javascript:'+getRand(a));