时间:2021-05-26
今天遇到这样的一个问题 封装一个 抽奖概率函数 思前想后去网上找点资料吧,而且不止一种方法 这种我感觉还是比较容易的 还是那句话 实现功能的思路不止一种 代码也不止一种。
function get_rand($proArr) { $result = ''; //概率数组的总概率精度 $proSum = array_sum($proArr); //概率数组循环 foreach ($proArr as $key => $proCur) { $randNum = mt_rand(1, $proSum); if ($randNum <= $proCur) { $result = $key; break; } else { $proSum -= $proCur; }}unset ($proArr);return $result;}$prize_arr = array('0' => array('id'=>1,'prize'=>'平板电脑','v'=>0.1),'1' => array('id'=>2,'prize'=>'数码相机','v'=>5),'2' => array('id'=>3,'prize'=>'音箱设备','v'=>10),'3' => array('id'=>4,'prize'=>'4G优盘','v'=>12),'4' => array('id'=>5,'prize'=>'10Q币','v'=>22),'5' => array('id'=>6,'prize'=>'下次没准就能中哦','v'=>50),);foreach ($prize_arr as $key => $val) {$arr[$val['id']] = $val['v'];}$rid = get_rand($arr); //根据概率获取奖项id$res['yes'] = $prize_arr[$rid-1]['prize']; //中奖项unset($prize_arr[$rid-1]); //将中奖项从数组中剔除,剩下未中奖项shuffle($prize_arr); //打乱数组顺序for($i=0;$i<count($prize_arr);$i++){$pr[] = $prize_arr[$i]['prize'];}$res['no'] = $pr;echo json_encode($res,JSON_UNESCAPED_UNICODE);以上这篇php简单中奖算法(实例)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
大转盘中奖概率算法在我们的日常生活中,经常遇到,那么基于php代码是如何实现中奖概率算法的,下面通过一段代码实例给大家介绍php中奖概率算法,代码简单易懂,并且
本文实例为大家分享了php中奖概率算法,可用于刮刮卡,大转盘等抽奖算法,用法很简单,代码里有详细注释说明,供大家参考,具体内容如下$proCur){$randN
本文实例为大家分享了PHP实现转盘抽奖算法的具体代码,供大家参考,具体内容如下流程:1.拼装奖项数组2.计算概率3.返回中奖情况代码如下:中奖概率'v'可以在后
本文实例讲述了php自定义hash函数实现方法。分享给大家供大家参考。具体分析如下:这里演示php实现的一个简单hash算法,可以用来加密,不过这个函数过于简单
本文实例讲述了PHP大转盘中奖概率算法的实现方法,分享给大家供大家参考。具体如下:大转盘是最近很多线上网动中一个比较有意思的东西了,下面我们就来看看这个大转盘中