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 相关文章推荐
实现 win2003 下 mysql 数据库每天自动备份
Dec 06 PHP
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
Nov 10 PHP
PHP获取本周第一天和最后一天示例代码
Feb 24 PHP
php实现搜索一维数组元素并删除二维数组对应元素的方法
Jul 06 PHP
利用PHP fsockopen 模拟POST/GET传送数据的方法
Sep 22 PHP
php微信开发之上传临时素材
Jun 24 PHP
PHP文件系统管理(实例讲解)
Sep 19 PHP
PHP简单实现模拟登陆功能示例
Sep 15 PHP
利用Homestead快速运行一个Laravel项目的方法详解
Nov 14 PHP
PHP实现的分解质因数操作示例
Aug 01 PHP
TP5框架实现签到功能的方法分析
Apr 05 PHP
浅谈Laravel中使用Slack进行异常通知
May 29 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数组操作之键名比较与差集、交集赋值的方法
2014/11/10 PHP
Codeigniter购物车类不能添加中文的解决方法
2014/11/29 PHP
php版微信小店调用api示例代码
2016/11/12 PHP
理解Javascript_02_理解undefined和null
2010/10/11 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
JavaScript实现当网页加载完成后执行指定函数的方法
2015/03/21 Javascript
jquery判断iPhone、Android设备类型
2016/09/14 Javascript
总结Javascript中数组各种去重的方法
2016/10/04 Javascript
Vue.js表单控件实践
2016/10/27 Javascript
servlet+jquery实现文件上传进度条示例代码
2017/01/25 Javascript
javascript验证香港身份证的格式或真实性
2017/02/07 Javascript
浅析Angular2子模块以及异步加载
2017/04/24 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
jQuery中库的引用方法
2018/01/06 jQuery
nodejs基于express实现文件上传的方法
2018/03/19 NodeJs
Vue-Router的使用方法
2018/09/05 Javascript
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
Vue Extends 扩展选项用法完整实例
2019/09/17 Javascript
如何在postman中添加cookie信息步骤解析
2020/06/30 Javascript
[29:16]完美世界DOTA2联赛决赛日 Inki vs LBZS 第三场 11.08
2020/11/10 DOTA
[31:47]夜魇凡尔赛茶话会 第三期01:选手知多少
2021/03/11 DOTA
Python中的CURL PycURL使用例子
2014/06/01 Python
浅谈python中的正则表达式(re模块)
2017/10/17 Python
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
Django框架models使用group by详解
2020/03/11 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
2020/05/22 Python
Python自动创建Excel并获取内容
2020/09/16 Python
python输出国际象棋棋盘的实例分享
2020/11/26 Python
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
会议邀请书范文
2014/02/02 职场文书
小学信息技术教学反思
2014/02/10 职场文书
招聘专员岗位职责
2014/03/07 职场文书
2014年十一国庆节活动方案
2014/09/16 职场文书
2014党支部对照检查材料思想汇报
2014/10/05 职场文书
七一建党节慰问信
2015/02/14 职场文书