Maison > Article > développement back-end > Analyse de cas de mise en œuvre d'un algorithme de loterie à la roulette à l'aide de PHP
Cette fois, je vais vous présenter une analyse de cas d'utilisation de PHP pour implémenter l'algorithme de loterie carrousel. Quelles sont les précautions pour utiliser PHP pour implémenter l'algorithme de loterie carrousel. jetez un oeil.
Processus :
1. Assembler la récompensetableau
2. Calculer la probabilité
3. La situation gagnante
Le code est le suivant :
La probabilité gagnante 'v' peut être définie en arrière-plan et transmise à cette méthode, RemarquePass 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; }
Rendu :
Je crois que vous maîtrisez la méthode après avoir lu le cas dans cet article, veuillez prêter attention aux choses plus excitantes. D'autres articles connexes sur le site Web chinois de php !
Lecture recommandée :
Une analyse de cas de génération de PHP Affiche code QR
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!