PHP大转盘中奖概率算法与示例代码
大转盘是最近很多线上网动中一个比较有意思的东西了,下面我们来看看这个大转盘中奖概率算法与例子,希望对各位有帮助。
近日工作中有一项目,APP客户端有大转盘抽奖,具体如何抽奖当然在我们服务端实现洛。下面和大家简单分享一下实现代码:
<?php header("Content-type: text/html; charset=utf-8"); $prize_arr = array( '0' => array( 'id' => 1, 'prize' => '平板电脑', 'v' => 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 ) , ); $actor = 100; foreach ($prize_arr as $v) { $arr[$v['id']] = $v['v']; } foreach ($arr as & $v) { $v = $v * $actor; } asort($arr); $sum = array_sum($arr); //总概率 $rand = mt_rand(1, $sum); $result = ''; //中奖产品id foreach ($arr as $k => $x) { if ($rand <= $x) { $result = $k; break; } else { $rand-= $x; } } $res['yes'] = $prize_arr[$result - 1]['prize']; //中奖项 print_r($res);
本文地址:http://www.phprm.com/code/65906.html
转载随意,但请附上文章地址:-)