首页 > 语言 > PHP > 正文

php 中奖概率算法实现代码

2024-05-04 23:54:35
字体:
来源:转载
供稿:网友

实现代码:

<?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' => '一等奖');


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选