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
Nov 25 PHP
php 删除数组元素
Jan 16 PHP
PHP 超链接 抓取实现代码
Jun 29 PHP
PHP 导出数据到淘宝助手CSV的方法分享
Feb 27 PHP
PHP 面向对象 final类与final方法
May 05 PHP
PHP项目开发中最常用的自定义函数整理
Dec 02 PHP
如何在PHP中使用正则表达式进行查找替换
Jun 13 PHP
Laravel框架中扩展函数、扩展自定义类的方法
Sep 04 PHP
CentOS安装php v8js教程
Feb 26 PHP
php读取本地json文件的实例
Mar 07 PHP
浅谈php的TS和NTS的区别
Mar 13 PHP
laravel配置Redis多个库的实现方法
Apr 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
星际争霸, 教主第一视角, ZvT经典龙蛇演义
2020/03/02 星际争霸
php str_replace的替换漏洞
2008/03/15 PHP
PHP 图片合成、仿微信群头像的方法示例
2019/10/25 PHP
JavaScript中“+”的陷阱深刻理解
2012/12/04 Javascript
javascript查询字符串参数的方法
2015/01/28 Javascript
JavaScript中的lastIndexOf()方法使用详解
2015/06/06 Javascript
jQuery基于ajax方式实现用户名存在性检查功能示例
2017/02/10 Javascript
利用vue.js插入dom节点的方法
2017/03/15 Javascript
jQuery正则验证注册页面经典实例
2017/06/10 jQuery
JavaScript数据类型的存储方法详解
2017/08/25 Javascript
使用vue制作探探滑动堆叠组件的实例代码
2018/03/07 Javascript
vue-cli3.0使用及部分配置详解
2018/08/29 Javascript
vue webpack打包后图片路径错误的完美解决方法
2018/12/07 Javascript
JavaScript常见事件对象与操作实例总结
2019/01/05 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
2019/12/04 Javascript
JS自定义右键菜单实现代码解析
2020/07/16 Javascript
在antd中setFieldsValue和defaultVal的用法
2020/10/29 Javascript
Python3连接MySQL(pymysql)模拟转账实现代码
2016/05/24 Python
Python两个内置函数 locals 和globals(学习笔记)
2016/08/28 Python
python 换位密码算法的实例详解
2017/07/19 Python
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
2017/12/11 Python
使用Python通过win32 COM实现Word文档的写入与保存方法
2018/05/08 Python
python实现五子棋小游戏
2020/03/25 Python
Python pytesseract验证码识别库用法解析
2020/06/29 Python
python collections模块的使用
2020/10/16 Python
NEW LOOK官网:英国时装零售巨头之一,快时尚品牌
2017/01/11 全球购物
DJI大疆德国官方商城:大疆无人机
2018/09/01 全球购物
会计专业自我鉴定范文
2013/10/06 职场文书
数据员岗位职责
2013/11/19 职场文书
贷款担保申请书
2014/05/20 职场文书
个人查摆剖析材料
2014/10/04 职场文书
集结号观后感
2015/06/08 职场文书
2015年成本会计工作总结
2015/10/14 职场文书
2016春季校长开学典礼致辞
2015/11/26 职场文书
Python Parser的用法
2021/05/12 Python
Redis如何使用乐观锁(CAS)保证数据一致性
2022/03/25 Redis