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 攻击方法之谈php+mysql注射语句构造
Oct 30 PHP
php学习笔记 [预定义数组(超全局数组)]
Jun 09 PHP
PHP持久连接mysql_pconnect()函数使用介绍
Feb 05 PHP
深入PHP购物车模块功能分析(函数讲解,附源码)
Jun 25 PHP
ThinkPHP CURD方法之table方法详解
Jun 18 PHP
实例介绍PHP的Reflection反射机制
Aug 05 PHP
PHP过滤黑名单关键字的方法
Dec 01 PHP
jquery+php实现导出datatables插件数据到excel的方法
Jul 06 PHP
php session实现多级目录存放实现代码
Feb 03 PHP
php封装的数据库函数与用法示例【参考thinkPHP】
Nov 08 PHP
php中访问修饰符的知识点总结
Jan 27 PHP
TP5多入口设置实例讲解
Dec 15 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
天使彦史上最神还原,性别曝光的那一刻,百万网友恋爱了
2020/03/02 国漫
php实现session自定义会话处理器的方法
2015/01/27 PHP
thinkphp框架实现删除和批量删除
2016/06/29 PHP
ExtJS GridPanel 根据条件改变字体颜色
2010/03/08 Javascript
window.event快达到全浏览器支持了,以后使用就方便了
2011/11/30 Javascript
100个不能错过的实用JS自定义函数
2014/03/05 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
轻松学习jQuery插件EasyUI EasyUI创建CRUD应用
2015/11/30 Javascript
javascript每日必学之条件分支
2016/02/17 Javascript
AngularJs bootstrap搭载前台框架——基础页面
2016/09/01 Javascript
微信开发之调起摄像头、本地展示图片、上传下载图片实例
2016/12/08 Javascript
js闭包用法实例详解
2016/12/13 Javascript
js实现微博发布小功能
2017/01/12 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
javascript实现电脑和手机版样式切换
2017/11/10 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
2019/03/13 jQuery
小程序云开发获取不到数据库记录的解决方法
2019/05/18 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
2020/08/15 Javascript
[12:36]《DOTA2》国服注册与激活指南全攻略
2013/04/28 DOTA
python selenium自动上传有赞单号的操作方法
2018/07/05 Python
详解python 3.6 安装json 模块(simplejson)
2019/04/02 Python
python程序中的线程操作 concurrent模块使用详解
2019/09/23 Python
使用Django实现把两个模型类的数据聚合在一起
2020/03/28 Python
Python爬虫爬取百度搜索内容代码实例
2020/06/05 Python
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
韩国江南富人区高端时尚百货商场:Galleria(格乐丽雅)
2018/03/27 全球购物
英国设计的甲板鞋和船鞋:Chatham
2018/12/06 全球购物
Zalando Lounge瑞士:时尚与生活方式购物俱乐部
2020/03/12 全球购物
最新英语专业学生求职信范文
2013/09/21 职场文书
八一演出活动方案
2014/02/03 职场文书
煤矿机修工岗位职责
2014/02/07 职场文书
写给同学的新学期寄语
2015/02/27 职场文书
杨善洲电影观后感
2015/06/04 职场文书
详细介绍Java中的CyclicBarrier
2022/04/13 Java/Android