php计算抽奖的概率

来源:互联网 发布:淘宝代购可信吗 编辑:程序博客网 时间:2024/05/20 18:46
<?php     //计算抽奖的概率    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'=>'1000000514','v'=>2),           '1' => array('id'=>2,'prize'=>'1000000513','v'=>5),           '2' => array('id'=>3,'prize'=>'1000000512','v'=>13),           '3' => array('id'=>4,'prize'=>'1000000511','v'=>15),           '4' => array('id'=>5,'prize'=>'1000000510','v'=>25),           '5' => array('id'=>6,'prize'=>'1000000509','v'=>30),  '6' => array('id'=>7,'prize'=>'1000000508','v'=>10),     );       foreach ($prize_arr as $key => $val) {           $arr[$val['id']] = $val['v'];       }       $rid = get_rand($arr);      $res['yes'] = $prize_arr[$rid-1]['prize'];     unset($prize_arr[$rid-1]);        shuffle($prize_arr);  $prize_arrcount = count($prize_arr);     for($i=0;$i<$prize_arrcount;$i++){           $pr[] = $prize_arr[$i]['prize'];       }       $res['no'] = $pr;   //抽奖结果    $ro = $res['yes'];print_r($ro);?>

5 0