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

高洛峰
Libérer: 2023-03-05 11:18:01
original
1601 Les gens l'ont consulté

Code d'implémentation :

<?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);
Copier après la connexion

Utiliser la méthode
Simuler une configuration gagnante gl lue dans la base de données comme probabilité de gagner
Par exemple array( 'gl' => 10, ' title' => 'Premier prix'); probabilité de gagner = 10 / (10 20 30 40)
$jp = array();
$jp[] = array( 'gl' => 10 , 'title' => 'Premier prix');
$jp[] = array( 'gl' => 20 , 'title' => 'Deuxième prix');
$ jp[] = array( 'gl' => 30 , 'title' => 'Troisième prix');
$jp[] = array( 'gl' => 40 , 'title' => ; 'Pas gagnant ');

Appelez la fonction de probabilité gagnante
Renvoyer le tableau d'informations gagnantes. Par exemple : array( 'gl' => 10 , 'title' => 'First Prize');

Pour plus d'articles sur le code d'implémentation de l'algorithme de probabilité gagnant PHP, veuillez prêter attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal