php 中奖概率算法实现代码


Posted in PHP onJanuary 25, 2017

实现代码:

<?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 相关文章推荐
JAVA/JSP学习系列之四
Oct 09 PHP
php !function_exists(&quot;T7FC56270E7A70FA81A5935B72EACBE29&quot;))代码解密
Jan 07 PHP
Warning: session_destroy() : Trying to destroy uninitialized sessionq错误
Jun 16 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
Sep 16 PHP
一个比较不错的PHP日历类分享
Nov 18 PHP
php使用pdo连接并查询sql数据库的方法
Dec 24 PHP
Thinkphp 空操作、空控制器、命名空间(详解)
May 05 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 PHP
浅析PHP类的反射来实现依赖注入过程
Feb 06 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
Jun 05 PHP
Yii框架连表查询操作示例
Sep 06 PHP
PHP常量DIRECTORY_SEPARATOR原理及用法解析
Nov 10 PHP
PHP封装函数实现生成随机的字符串验证码
Jan 24 #PHP
基于yaf框架和uploadify插件,做的一个导入excel文件,查看并保存数据的功能
Jan 24 #PHP
PHP 配置后台登录以及模板引入
Jan 24 #PHP
PHP实现登陆表单提交CSRF及验证码
Jan 24 #PHP
php获取访问者浏览页面的浏览器类型
Jan 23 #PHP
php字符集转换
Jan 23 #PHP
Yii全局函数用法示例
Jan 22 #PHP
You might like
PHP数据类型之布尔型的介绍
2013/04/28 PHP
Yii框架form表单用法实例
2014/12/04 PHP
php正则匹配html中带class的div并选取其中内容的方法
2015/01/13 PHP
PHP常用操作类之通信数据封装类的实现
2017/07/16 PHP
jquery中.add()的使用分析
2013/04/26 Javascript
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
AngularJS入门教程之表格实例详解
2016/07/27 Javascript
详解JS对象封装的常用方式
2016/12/30 Javascript
layui选项卡效果实现代码
2017/05/19 Javascript
[js高手之路]单例模式实现模态框的示例
2017/09/01 Javascript
jquery获取img的src值实例介绍
2019/01/16 jQuery
vue实现微信获取用户信息的方法
2019/03/21 Javascript
vue使用i18n实现国际化的方法详解
2019/09/05 Javascript
vue+element表格导出为Excel文件
2019/09/26 Javascript
go和python调用其它程序并得到程序输出
2014/02/10 Python
python和shell实现的校验IP地址合法性脚本分享
2014/10/23 Python
python实现用于测试网站访问速率的方法
2015/05/26 Python
python实现识别相似图片小结
2016/02/22 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
2019/08/04 Python
python如何将多个PDF进行合并
2019/08/13 Python
python 3.6.7实现端口扫描器
2019/09/04 Python
Django crontab定时任务模块操作方法解析
2020/09/10 Python
CSS教程:CSS3圆角属性
2009/04/02 HTML / CSS
实例讲解CSS3中的box-flex弹性盒属性布局
2016/06/09 HTML / CSS
打造经典复古风格的品牌:Alice + Olivia(爱丽丝+奥利维亚)
2016/09/07 全球购物
英国婴儿和儿童服装网站:Vertbaudet
2018/04/02 全球购物
优秀应届毕业生自荐书
2014/06/29 职场文书
高中生旷课检讨书
2014/10/08 职场文书
2014年幼师工作总结
2014/11/22 职场文书
护士年终考核评语
2014/12/31 职场文书
匿名检举信范文
2015/03/02 职场文书
2016年学校“3.12”植树节活动总结
2016/03/16 职场文书
争做文明公民倡议书
2019/06/24 职场文书
小学秋季运动会加油口号及加油稿
2019/08/19 职场文书
IDEA 链接Mysql数据库并执行查询操作的完整代码
2021/05/20 MySQL
一篇文章弄懂Python关键字、标识符和变量
2021/07/15 Python