欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

php中奖概率算法实现代码的详细分析

来源:本站整理 作者:佚名 时间:2017-04-07 TAG: 我要投稿

实现代码:
 <?php
/**
 *php 中奖概率算法
 *
 */
function get_zj( $jp ,$glname = 'gl'){
$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( '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' => '一等奖');

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载