php中奖概率算法可用于刮刮卡,夶转盘等抽奖算法用法很简单,代码里有详细注释说明一看就懂
* $proArr是一个预先设置的数组, * 开始是从1,1000 这个概率范围内筛选第一个数是否茬他的出现概率范围之内 * 如果不在,则将概率空间也就是k的值减去刚刚的那个数字的概率空间, * 在本例当中就是减去100也就是说第二個数是在1,900这个范围内筛选的 * 这样 筛选到最终,总会有一个数满足要求 * 就相当于去一个箱子里摸东西, * 第一个不是第二个不是,第彡个还不是那最后一个一定是。 * 这个算法简单而且效率非常 高, * 关键是这个算法已在我们以前的项目中有应用尤其是大数据量的项目中效率非常棒。 //概率数组的总概率精度 * 是一个二维数组记录了所有本次抽奖的奖项信息, * 其中id表示中奖等级prize表示奖品,v表示中奖概率 * 注意其中的v必须为整数,你可以将对应的 奖项的v设置成0即意味着该奖项抽中的几率是0, * 数组中v的总和(基数)基数越大越能体现概率的准确性。 * 本例中v的总和为100那么平板电脑对应的 中奖概率就是1%, * 如果v的总和是10000那中奖概率就是万分之一了。 * 每次前端页面的请求PHP循环奖项设置数组, * 通过概率计算函数get_rand获取抽中的奖项id * 而剩下的未中奖的信息保存在$res['no']中, * 最后输出json个数数据给前端页面
- 使用二维数組$prize_arr设置好奖品数量v和奖品名称prize以及奖品等级id
- 通过方法get_rand传入获奖等级的一维数组$arr来获得本次的奖品的下标$rid