PHP抽奖程序概率算法

开发技术 作者: 2024-07-27 08:15:02
PHP抽奖程序概率算法

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

编程之家小编现在分享给大家,也给大家做个参考。

//概率算法,6个奖项
$prize_arr = array(
    '0' => array('id'=>1,'prize'=>'iphone6','v'=>1),'1' => array('id'=>2,'prize'=>'数码相机','v'=>5),'2' => array('id'=>3,'prize'=>'音箱设备','v'=>10),'3' => array('id'=>4,'prize'=>'50Q币','v'=>24),'4' => array('id'=>5,'prize'=>'10Q币','v'=>60),'5' => array('id'=>6,'prize'=>'干吧碟','v'=>1900),);
 
//每个奖品的中奖几率,奖品ID作为数组下标
foreach($prize_arr as $val){
    $item[$val['id']] = $val['v'];
}
 
function get($item){
    //中奖概率基数 
    $num = array_sum($item);//当前一等奖概率1/2000
 
    foreach($item as $k=>$v){
        //获取一个1到当前基数范围的随机数
        $rand = mt_rand(1,$num);
        if($rand <= $v){
            //假设当前奖项$k=2,$v<=5才能中奖
            $res = $k;
            break;
        }else{
            //假设当前奖项$k=6,$v>1900,则没中六等奖,总获奖基数2000-1900,前五次循环都没中则2000-1-5-10-24-60=1900,必中6等奖,哈哈
            $num -= $v;
        }
    }
    return $res;
}
 
 
$res = get($item);
$h = $prize_arr[$res-1]['prize'];
echo $h.'; ';

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_51586.html
PHP抽奖程序概率算法