Maison >développement back-end >tutoriel php >Explication détaillée de l'algorithme gagnant php

Explication détaillée de l'algorithme gagnant php

小云云
小云云original
2018-01-26 13:42:531994parcourir

Cet article vous propose principalement un algorithme PHP simple pour gagner à la loterie (exemple). L'éditeur pense que c'est plutôt bien, alors je vais le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur pour y jeter un œil, j'espère que cela pourra aider tout le monde.

J'ai rencontré un tel problème aujourd'hui. Encapsulez une fonction de probabilité de loterie. Après y avoir réfléchi, allez sur Internet pour trouver des informations, et je pense que c'est relativement. C'est facile, et l'idée d'implémenter la fonction est toujours la même. Il y a plus d'un code et plus d'un.


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(
&#39;0&#39; => array(&#39;id&#39;=>1,&#39;prize&#39;=>&#39;平板电脑&#39;,&#39;v&#39;=>0.1),
&#39;1&#39; => array(&#39;id&#39;=>2,&#39;prize&#39;=>&#39;数码相机&#39;,&#39;v&#39;=>5),
&#39;2&#39; => array(&#39;id&#39;=>3,&#39;prize&#39;=>&#39;音箱设备&#39;,&#39;v&#39;=>10),
&#39;3&#39; => array(&#39;id&#39;=>4,&#39;prize&#39;=>&#39;4G优盘&#39;,&#39;v&#39;=>12),
&#39;4&#39; => array(&#39;id&#39;=>5,&#39;prize&#39;=>&#39;10Q币&#39;,&#39;v&#39;=>22),
&#39;5&#39; => array(&#39;id&#39;=>6,&#39;prize&#39;=>&#39;下次没准就能中哦&#39;,&#39;v&#39;=>50),
);


foreach ($prize_arr as $key => $val) {
$arr[$val[&#39;id&#39;]] = $val[&#39;v&#39;];
}
$rid = get_rand($arr); //根据概率获取奖项id
$res[&#39;yes&#39;] = $prize_arr[$rid-1][&#39;prize&#39;]; //中奖项
unset($prize_arr[$rid-1]); //将中奖项从数组中剔除,剩下未中奖项
shuffle($prize_arr); //打乱数组顺序
for($i=0;$i<count($prize_arr);$i++){
$pr[] = $prize_arr[$i][&#39;prize&#39;];
}
$res[&#39;no&#39;] = $pr;
echo json_encode($res,JSON_UNESCAPED_UNICODE);

Recommandations associées :

Exemple d'implémentation PHP d'un algorithme de probabilité de gain d'un programme de loterie

Code d'implémentation de l'algorithme de probabilité de gain de loterie PHP

Code du programme d'algorithme de probabilité de gain de loterie PHP_Tutoriel PHP

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn