Heim  >  Artikel  >  Backend-Entwicklung  >  Fallanalyse der Implementierung des Roulette-Lotterie-Algorithmus mit PHP

Fallanalyse der Implementierung des Roulette-Lotterie-Algorithmus mit PHP

php中世界最好的语言
php中世界最好的语言Original
2018-05-16 11:49:403034Durchsuche

Dieses Mal werde ich Ihnen eine Fallanalyse der Verwendung von PHP zur Implementierung des Karussell-Lotterie-Algorithmus vorstellen. Was sind die Vorsichtsmaßnahmen bei der Verwendung von PHP zur Implementierung des Karussell-Lotterie-Algorithmus? Schauen Sie mal rein.

Prozess:

1. AuszeichnungArray zusammenstellen

2. Wahrscheinlichkeit berechnen

3 Die Gewinnsituation

Der Code lautet wie folgt:

Die Gewinnwahrscheinlichkeit „v“ kann im Hintergrund festgelegt und an diese Methode übergeben werden, HinweisPass 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][&#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;  
  }

Rendering:

Ich glaube, Sie haben die Methode gemeistert, nachdem Sie den Fall hier gelesen haben Weitere spannende Artikel finden Sie unter PHP Chinesisch. Weitere verwandte Artikel online!

Empfohlene Lektüre:

Detaillierte Erläuterung der Schritte für PHP, um file_get_contents zum Senden von HTTP-Anfragen zu verwenden

Fallanalyse der PHP-Generierung von QR Code-Poster

Das obige ist der detaillierte Inhalt vonFallanalyse der Implementierung des Roulette-Lotterie-Algorithmus mit PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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