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 相关文章推荐
php的正则处理函数总结分析
Jun 20 PHP
UCenter Home二次开发指南
May 28 PHP
php垃圾代码优化操作代码
Aug 05 PHP
关于ob_get_contents(),ob_end_clean(),ob_start(),的具体用法详解
Jun 24 PHP
PHP中使用strpos函数实现屏蔽敏感关键字功能
Aug 21 PHP
帝国cms目录结构分享
Jul 06 PHP
php结合curl实现多线程抓取
Jul 09 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
Apr 17 PHP
PHP下载文件的函数实例代码
May 18 PHP
深入理解PHP中mt_rand()随机数的安全
Oct 12 PHP
PHP简单实现防止SQL注入的方法
Mar 13 PHP
Yii 实现数据加密和解密
Mar 09 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
一个显示天气预报的程序
2006/10/09 PHP
PHP中遍历stdclass object的实现代码
2011/06/09 PHP
深入apache配置文件httpd.conf的部分参数说明
2013/06/28 PHP
CI框架入门示例之数据库取数据完整实现方法
2014/11/05 PHP
php去除二维数组的重复项方法
2015/11/03 PHP
php正则修正符用法实例详解
2016/12/29 PHP
基于jQuery的弹出消息插件 DivAlert之旅(一)
2010/04/01 Javascript
extjs grid设置某列背景颜色和字体颜色的方法
2010/09/03 Javascript
jqPlot 图表中文API使用文档及源码和在线示例
2012/02/07 Javascript
基于javascript滚动图片具体实现
2013/11/18 Javascript
使用node.js 制作网站前台后台
2014/11/13 Javascript
jQuery中clone()方法用法实例
2015/01/16 Javascript
JS实现灵巧的下拉导航效果代码
2015/08/25 Javascript
JS跨域交互(jQuery+php)之jsonp使用心得
2016/07/01 Javascript
JS仿京东移动端手指拨动切换轮播图效果
2020/04/10 Javascript
使用微信内嵌H5网页解决JS倒计时失效问题
2017/01/13 Javascript
浅谈JS验证表单文本域输入空格的问题
2017/02/14 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
2018/08/08 Javascript
vue组件之间数据传递的方法实例分析
2019/02/12 Javascript
详解微信小程序的不同函数调用的几种方法
2019/05/08 Javascript
JavaScript事件概念详解(区分静态注册和动态注册)
2021/02/05 Javascript
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[39:21]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.24
2019/09/10 DOTA
使用PYTHON创建XML文档
2012/03/01 Python
在Django的视图中使用数据库查询的方法
2015/07/16 Python
Python 专题四 文件基础知识
2017/03/20 Python
python 处理string到hex脚本的方法
2018/10/26 Python
如何基于Python批量下载音乐
2019/11/11 Python
Python JSON编解码方式原理详解
2020/01/20 Python
Python使用Chrome插件实现爬虫过程图解
2020/06/09 Python
联想法国官方网站:Lenovo法国
2018/10/18 全球购物
HEMA法国:荷兰原创设计
2019/02/21 全球购物
班主任工作经验材料
2014/02/02 职场文书
《在大海中永生》教学反思
2014/02/24 职场文书
幼儿园托班教育随笔
2015/08/14 职场文书
详细了解java监听器和过滤器
2021/07/09 Java/Android