Home > Article > Backend Development > PHP realizes the turntable lottery algorithm sharing php examples
This article mainly introduces the algorithm of realizing the big carousel lottery in PHP in detail. It has certain reference value. Interested friends can refer to it.
The example of this article is to share with you the implementation of the carousel lottery in PHP. The specific code of the algorithm is for your reference. The specific content is as follows
Process:
1. Assemble the award array
2. Calculate the probability
3. Return the winning situation
The code is as follows:
The winning probability ' v ' can be set in the background and passed to this method, NoteTransfer integer
function get_gift(){ //拼装奖项数组 // 奖项id,奖品,概率 $prize_arr = array( '0' => array('id'=>1,'prize'=>'平板电脑','v'=>0), '1' => array('id'=>2,'prize'=>'数码相机','v'=>0), '2' => array('id'=>3,'prize'=>'音箱设备','v'=>0), '3' => array('id'=>4,'prize'=>'4G优盘','v'=>5), '4' => array('id'=>5,'prize'=>'10Q币','v'=>0), '5' => array('id'=>6,'prize'=>'空奖','v'=>5), ); foreach ($prize_arr as $key => $val) { $arr[$val['id']] = $val['v'];//概率数组 } $rid = $this->get_rand($arr); //根据概率获取奖项id $res['yes'] = $prize_arr[$rid-1]['prize']; //中奖项 unset($prize_arr[$rid-1]); //将中奖项从数组中剔除,剩下未中奖项 shuffle($prize_arr); //打乱数组顺序 for($i=0;$i<count($prize_arr);$i++){ $pr[] = $prize_arr[$i]['prize']; //未中奖项数组 } $res['no'] = $pr; // var_dump($res); if($res['yes']!='空奖'){ $result['status']=1; $result['name']=$res['yes']; }else{ $result['status']=-1; $result['msg']=$res['yes']; } //return $result; var_dump($result); } //计算中奖概率 function get_rand($proArr) { $result = ''; //概率数组的总概率精度 $proSum = array_sum($proArr); // var_dump($proSum); //概率数组循环 foreach ($proArr as $key => $proCur) { $randNum = mt_rand(1, $proSum); //返回随机整数 if ($randNum <= $proCur) { $result = $key; break; } else { $proSum -= $proCur; } } unset ($proArr); return $result; }
Rendering:
The above is the entire content of this article , I hope it will be helpful to everyone’s study, and I also hope everyone will support the php Chinese website.
PHP uses curl_multi to implement concurrent requests Example PHP tips
PHP performance testing tool xhprof installation and use method detailed php skills
PHP implements the method of locating the cause of the fault through strace php skills
The above is the detailed content of PHP realizes the turntable lottery algorithm sharing php examples. For more information, please follow other related articles on the PHP Chinese website!