本文实例讲述了PHP大转盘中奖概率算法的实现方法,分享给大家供大家参考。具体如下:
大转盘是最近很多线上网动中一个比较有意思的东西了,下面我们就来看看这个大转盘中奖概率算法与例子,希望对各位有所帮助。
这是一个APP客户端有大转盘抽奖算法,具体如何抽奖当然在我们服务端实现了。下面和大家简单分享一下实现代码:
1 header("Content-type: text/html; charset=utf-8"); 2 $prize_arr = array( 3 '0' => array('id'=>1,'prize'=>'平板电脑','v'=>1), 4 '1' => array('id'=>2,'prize'=>'数码相机','v'=>5), 5 '2' => array('id'=>3,'prize'=>'音箱设备','v'=>10), 6 '3' => array('id'=>4,'prize'=>'4G优盘','v'=>12), 7 '4' => array('id'=>5,'prize'=>'10Q币','v'=>22), 8 '5' => array('id'=>6,'prize'=>'下次没准就能中哦','v'=>50), 9 ); 10 11 $actor = 100; 12 13 foreach ($prize_arr as $v) { 14 $arr[$v['id']] = $v['v']; 15 } 16 foreach ($arr as &$v) { 17 $v = $v*$actor; 18 } 19 asort($arr); 20 $sum = array_sum($arr); //总概率 21 22 $rand = mt_rand(1,$sum); 23 24 $result = ''; //中奖产品id 25 26 foreach ($arr as $k => $x) 27 { 28 if($rand <= $x) 29 { 30 $result = $k; 31 break; 32 } 33 else 34 { 35 $rand -= $x; 36 } 37 } 38 $res['yes'] = $prize_arr[$result-1]['prize']; //中奖项 39 print_r($res);