Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie die große Karussellfunktion in PHP

So implementieren Sie die große Karussellfunktion in PHP

藏色散人
藏色散人Original
2021-11-16 10:35:112101Durchsuche

So implementieren Sie die große Karussellfunktion in PHP: 1. Stellen Sie das Preisarray mit Code wie „$prize_arr = array(...)“ zusammen. 2. Berechnen Sie die Gewinnwahrscheinlichkeit. 3. Geben Sie den Gewinnstatus zurück.

So implementieren Sie die große Karussellfunktion in PHP

Die Betriebsumgebung dieses Artikels: Windows7-System, PHP7.1-Version, DELL G3-Computer

php Wie implementiert man die große Drehtellerfunktion?

PHP implementiert den Big-Wheel-Lotterie-Algorithmus

Prozess:

1. Stellen Sie das Gewinnarray zusammen, 2. Berechnen Sie die Wahrscheinlichkeit, 3. Geben Sie die Gewinnsituation zurück

Der Code lautet wie folgt: Die Gewinnwahrscheinlichkeit 'v' kann im Hintergrund festgelegt und an diese Methode übergeben werden, achten Sie auf die Übergabe von Ganzzahlen

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:

So implementieren Sie die große Karussellfunktion in PHP

Empfohlenes Lernen: „PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die große Karussellfunktion in 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