PHP realisiert den Karussell-Lotterie-Algorithmus und teilt PHP-Beispiele

jacklove
Freigeben: 2023-04-01 19:38:02
Original
1956 Leute haben es durchsucht

In diesem Artikel wird hauptsächlich die Implementierung des großen Karussell-Lotterie-Algorithmus im Detail vorgestellt. Interessierte Freunde können sich darauf beziehen.

Das Beispiel in diesem Artikel zeigt Ihnen die PHP-Implementierung des Karussells Lotterie. Der spezifische Code des Algorithmus ist wie folgt:

Vorgang:

1 >2. Berechnen Sie die Wahrscheinlichkeit

3. Geben Sie den Gewinnstatus zurück

Der Code lautet wie folgt:

Die Gewinnwahrscheinlichkeit „v“ kann im Hintergrund festgelegt und übergeben werden zu dieser Methode,

Hinweis

Übergabe von ganzen Zahlen

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][&#39;prize&#39;]; //未中奖项数组 
    }  
    $res[&#39;no&#39;] = $pr; 
    // var_dump($res);

     
    if($res[&#39;yes&#39;]!=&#39;空奖&#39;){ 
      $result[&#39;status&#39;]=1; 
      $result[&#39;name&#39;]=$res[&#39;yes&#39;]; 
    }else{ 
      $result[&#39;status&#39;]=-1; 
      $result[&#39;msg&#39;]=$res[&#39;yes&#39;]; 
    }  
    //return $result; 
    var_dump($result);
  } 

  //计算中奖概率
  function get_rand($proArr) {  
   $result = &#39;&#39;;  
   //概率数组的总概率精度  
   $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;  
  }
Nach dem Login kopieren

Rendering:

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich sein wird, und ich hoffe auch, dass jeder die chinesische PHP-Website unterstützt.

Artikel, die Sie interessieren könnten:

PHP verwendet curl_multi, um gleichzeitige Anfragen zu implementieren. Beispiel-PHP-Tipps


Detaillierte Erläuterung der Installation und Verwendung des PHP-Leistungstesttools xhprof mit PHP-Kenntnissen


PHP-Methoden zum Auffinden von Fehlerursachen durch Strace-PHP-Kenntnisse


Das obige ist der detaillierte Inhalt vonPHP realisiert den Karussell-Lotterie-Algorithmus und teilt PHP-Beispiele. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage