首页 > php代码 > PHP大转盘中奖概率算法与示例代码

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

转载随意,但请附上文章地址:-)

标签:foreach

相关文章

发表留言