php 中奖概率算法实现代码
实现代码:
<?php header("Content-type: text/html; charset=utf-8"); /** *php 中奖概率算法 * */ function open_kj( $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+50+100+200) $jp = array(); $jp[] = array( 'gl' => 010 , 'title' => '一等奖'); $jp[] = array( 'gl' => 050 , 'title' => '二等奖'); $jp[] = array( 'gl' => 100 , 'title' => '三等奖'); $jp[] = array( 'gl' => 200 , 'title' => '未中奖'); //调用 中奖概率函数 //返回中奖 信息数组 例如:array( 'gl' => 10 , 'title' => '一等奖'); $zj = open_kj( $jp ); //输出数组 xc($zj); function xc($array) { echo "<pre>"; print_r($array); echo "</pre>"; } ?>
转载请注明来源地址:小川编程 » https://www.youhutong.com/index.php/article/index/131.html