Heim >Backend-Entwicklung >PHP-Tutorial >Implementierungscode für den PHP-Lotterie-Wahrscheinlichkeitsalgorithmus

Implementierungscode für den PHP-Lotterie-Wahrscheinlichkeitsalgorithmus

高洛峰
高洛峰Original
2017-02-03 15:54:181648Durchsuche

Implementierungscode:

<?php
/**
 *php 中奖概率算法
 *
 */
function get_zj( $jp ,$glname = &#39;gl&#39;){
    $sum = 0;
    foreach($jp as $k =>$v ){
        $sum += $v[$glname];
    }
  
    $R = rand(1,$sum);//获取随机数
  
    foreach( $jp as $k => $v){
        if( $R <= $v[$glname] ){
            return $v;
        }
        $R = $R - $v[$glname] ;
    }
  
}
  
  
//使用方法
//模拟一个从数据库中读取的 中奖配置  gl 为 中奖的概率 
//例如array( &#39;gl&#39; => 10 , &#39;title&#39; => &#39;一等奖&#39;);的中奖概率 = 10 / (10+20+30+40)
$jp = array();
$jp[] = array( &#39;gl&#39; => 10 , &#39;title&#39; => &#39;一等奖&#39;);
$jp[] = array( &#39;gl&#39; => 20 , &#39;title&#39; => &#39;二等奖&#39;);
$jp[] = array( &#39;gl&#39; => 30 , &#39;title&#39; => &#39;三等奖&#39;);
$jp[] = array( &#39;gl&#39; => 40 , &#39;title&#39; => &#39;未中奖&#39;);
  
  
//调用 中奖概率函数 
//返回中奖 信息数组 例如:array( &#39;gl&#39; => 10 , &#39;title&#39; => &#39;一等奖&#39;);
$zj = get_zj( $jp );
  
//输出数组
var_dump($zj);

Methode verwenden
Simulieren Sie eine Gewinnkonfiguration, die aus der Datenbank als Gewinnwahrscheinlichkeit gelesen wird
Zum Beispiel array( 'gl' => 10, ' title' => 'Erster Preis'); Gewinnwahrscheinlichkeit = 10 / (10+20+30+40)
$jp = array();
$jp[] = array( 'gl' => ; 10 , 'title' => 'Erster Preis');
$jp[] = array( 'gl' => 20 , 'title' => 'Zweiter Preis');
$jp [] = array( 'gl' => 30 , 'title' => 'Dritter Preis');
$jp[] = array( 'gl' => 40 , 'title ' => ' Nicht gewinnen');

Rufen Sie die Gewinnwahrscheinlichkeitsfunktion auf
Gibt das Gewinninformationsarray zurück. Beispiel: array( 'gl' => 10 , 'title' => 'First Prize' );

Weitere Artikel zum Implementierungscode des PHP-Gewinnwahrscheinlichkeitsalgorithmus finden Sie auf der chinesischen PHP-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