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 相关文章推荐
文件上传程序的全部源码
Oct 09 PHP
php 无限级缓存的类的扩展
Mar 16 PHP
探寻PHP脚本不报错的原因
Jun 12 PHP
phpmyadmin出现Cannot start session without errors问题解决方法
Aug 14 PHP
跟我学Laravel之视图 &amp; Response
Oct 15 PHP
php程序内部post数据的方法
Mar 31 PHP
php微信公众号开发(4)php实现自定义关键字回复
Dec 15 PHP
PHP+RabbitMQ实现消息队列的完整代码
Mar 20 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
Mar 21 PHP
php-fpm重启导致的程序执行中断问题详解
Apr 29 PHP
PHP钩子实现方法解析
May 21 PHP
php实现微信公众号创建自定义菜单功能的实例代码
Jun 11 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.ini中添加extension=php_mysqli.dll指令的说明
2007/06/14 PHP
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
ThinkPHP与PHPExcel冲突解决方法
2011/08/08 PHP
php从完整文件路径中分离文件目录和文件名的方法
2015/03/13 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
2016/05/28 PHP
php双层循环(九九乘法表)
2017/10/23 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
2019/05/23 PHP
基于jquery的loading 加载提示效果实现代码
2011/09/01 Javascript
js Event对象的5种坐标
2011/09/12 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
Tab切换组件(选项卡功能)实例代码
2013/11/21 Javascript
JavaScript中的类数组对象介绍
2014/12/30 Javascript
javascript使用appendChild追加节点实例
2015/01/12 Javascript
Jquery实现仿京东商城省市联动菜单
2015/11/19 Javascript
Javascript中关于Array.filter()的妙用详解
2016/12/04 Javascript
详解nodejs中exports和module.exports的区别
2017/02/17 NodeJs
AngularJS页面带参跳转及参数解析操作示例
2017/06/28 Javascript
jQuery实现点击关注和取消功能
2017/07/03 jQuery
AngularJS集合数据遍历显示的实例
2017/12/27 Javascript
vue2 mint-ui loadmore实现下拉刷新,上拉更多功能
2018/03/21 Javascript
webpack优化的深入理解
2018/12/10 Javascript
[02:38]DOTA2 夜魇暗潮2020活动介绍官方视频
2020/11/04 DOTA
Python实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
2014/06/04 Python
跟老齐学Python之重回函数
2014/10/10 Python
探寻python多线程ctrl+c退出问题解决方案
2014/10/23 Python
Python中的字典遍历备忘
2015/01/17 Python
深入解析Python中的线程同步方法
2016/06/14 Python
Python 字符串换行的多种方式
2018/09/06 Python
python 根据字典的键值进行排序的方法
2019/07/24 Python
基于HTML5的齿轮动画特效
2016/02/29 HTML / CSS
MIKI HOUSE美国官方网上商店:日本领先的婴儿和儿童高级时装品牌
2020/06/21 全球购物
用C#语言写出与SQLSERVER访问时的具体过程
2013/04/16 面试题
关于倡议书的范文
2015/04/29 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
2019企业文化管理制度范本!
2019/08/06 职场文书
Windows Server 2016 配置 IIS 的详细步骤
2022/04/28 Servers