php 中奖概率算法实现代码

作者:袖梨 2022-06-24
 代码如下复制代码

/**

 *php 中奖概率算法

 

 *

 */

functionget_zj($jp,$glname='gl'){

    $sum= 0;

    foreach($jpas$k=>$v){

        $sum+=$v[$glname];

    }

  

    $R= rand(1,$sum);//获取随机数

  

    foreach($jpas$k=>$v){

        if($R<=$v[$glname] ){

            return$v;

        }

        $R=$R-$v[$glname] ;

    }

  

}

  

  

//使用方法

//模拟一个从数据库中读取的 中奖配置  gl 为 中奖的概率

//例如array( 'gl' => 10 , 'title' => '一等奖');的中奖概率 = 10 / (10+20+30+40)

$jp=array();

$jp[] =array('gl'=> 10 ,'title'=>'一等奖');

$jp[] =array('gl'=> 20 ,'title'=>'二等奖');

$jp[] =array('gl'=> 30 ,'title'=>'三等奖');

$jp[] =array('gl'=> 40 ,'title'=>'未中奖');

  

  

//调用 中奖概率函数

//返回中奖 信息数组 例如:array( 'gl' => 10 , 'title' => '一等奖');

$zj= get_zj($jp);

  

//输出数组

var_dump($zj);

使用方法
模拟一个从数据库中读取的 中奖配置 gl 为 中奖的概率
例如array( 'gl' => 10 , 'title' => '一等奖');的中奖概率 = 10 / (10+20+30+40)
$jp = array();
$jp[] = array( 'gl' => 10 , 'title' => '一等奖');
$jp[] = array( 'gl' => 20 , 'title' => '二等奖');
$jp[] = array( 'gl' => 30 , 'title' => '三等奖');
$jp[] = array( 'gl' => 40 , 'title' => '未中奖');
调用 中奖概率函数
返回中奖 信息数组 例如:array( 'gl' => 10 , 'title' => '一等奖');

相关文章

精彩推荐