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中Date()时间日期函数的使用方法小结
Apr 20 PHP
php中将汉字转换成拼音的函数代码
Sep 08 PHP
php定时计划任务与fsockopen持续进程实例
May 23 PHP
php中json_encode处理gbk与gb2312中文乱码问题的解决方法
Jul 10 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
Jan 15 PHP
smarty的section嵌套循环用法示例
May 28 PHP
PHP读书笔记整理_结构语句详解
Jul 01 PHP
thinkphp3.2.3 分页代码分享
Jul 28 PHP
PHP mysqli事务操作常用方法分析
Jul 22 PHP
laravel5实现微信第三方登录功能
Dec 06 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 PHP
phpstorm激活码2020附使用详细教程
Sep 25 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
js下函数般调用正则的方法附代码
2008/06/22 PHP
第4章 数据处理-php正则表达式-郑阿奇(续)
2011/07/04 PHP
Centos PHP 扩展Xchche的安装教程
2016/07/09 PHP
php实现每日签到功能
2018/11/29 PHP
php遍历目录下文件并按修改时间排序操作示例
2019/07/12 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
javascript一个无懈可击的实例化XMLHttpRequest的方法
2010/10/13 Javascript
javascript与webservice的通信实现代码
2010/12/25 Javascript
JavaScript中使用ActiveXObject操作本地文件夹的方法
2014/03/28 Javascript
JavaScript中双叹号(!!)作用示例介绍
2014/04/10 Javascript
jQuery学习笔记之创建DOM元素
2015/01/19 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
js图片延迟加载(Lazyload)三种实现方式
2017/03/01 Javascript
node.js中express-session配置项详解
2017/05/31 Javascript
详解webpack解惑:require的五种用法
2017/06/09 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
详解webpack3编译兼容IE8的正确姿势
2017/12/21 Javascript
关于AngularJS中ng-repeat不更新视图的解决方法
2018/09/30 Javascript
微信小程序 bindtap 传参的实例代码
2020/02/21 Javascript
javascript绘制简单钟表效果
2020/04/07 Javascript
OpenLayers3实现地图显示功能
2020/09/25 Javascript
[28:57]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/16 DOTA
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
python利用paramiko连接远程服务器执行命令的方法
2017/10/16 Python
解决python3中cv2读取中文路径的问题
2018/12/05 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
2020/03/04 Python
在django admin详情表单显示中添加自定义控件的实现
2020/03/11 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
韩都衣舍天猫官方旗舰店:天猫女装销售总冠军
2017/10/10 全球购物
美国最大的在线水培用品商店:GrowersHouse.com
2018/08/14 全球购物
J2ee常用的设计模式?说明工厂模式
2015/05/21 面试题
超市实习总结自我鉴定
2013/09/19 职场文书
口头翻译求职人自荐信
2013/12/07 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
2016学校先进集体事迹材料
2016/02/29 职场文书
Java使用jmeter进行压力测试
2021/07/09 Java/Android