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和AJAX创建RSS聚合器的代码
Mar 13 PHP
php继承的一个应用
Sep 06 PHP
php导入导出excel实例
Oct 25 PHP
smarty中英文多编码字符截取乱码问题解决方法
Oct 28 PHP
PHP实现返回JSON和XML的类分享
Jan 28 PHP
php-redis中的sort排序函数总结
Jul 08 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
Apr 12 PHP
yii gridview实现时间段筛选功能
Aug 15 PHP
php生成毫秒时间戳的实例讲解
Sep 22 PHP
php-app开发接口加密详解
Apr 18 PHP
Laravel学习笔记之Artisan命令生成自定义模板的方法
Nov 22 PHP
php7下的filesize函数
Sep 30 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
实现获取http内容的php函数分享
2014/02/16 PHP
PHP中的日期加减方法示例
2014/08/21 PHP
php实现mysql数据库分表分段备份
2015/06/18 PHP
防止动态加载JavaScript引起的内存泄漏问题
2009/10/08 Javascript
利用腾讯的ip地址库做ip物理地址定位
2010/07/24 Javascript
基于node.js的快速开发透明代理
2010/12/25 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
2013/06/24 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
Vuejs第十篇之vuejs父子组件通信
2016/09/06 Javascript
让编辑器支持word复制黏贴、截屏的js代码
2016/10/17 Javascript
深入理解javascript中concat方法
2016/12/12 Javascript
js 性能优化之快速响应的用户界面
2017/02/15 Javascript
尝试自己动手用react来写一个分页组件(小结)
2018/02/09 Javascript
Vue自定义toast组件的实例代码
2018/08/15 Javascript
Vue.set()动态的新增与修改数据,触发视图更新的方法
2018/09/15 Javascript
vue移动端弹框组件的实例
2018/09/25 Javascript
微信小程序实现登录注册tab切换效果
2020/12/29 Javascript
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
React实现阿里云OSS上传文件的示例
2020/08/10 Javascript
[01:25:09]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第二场
2014/05/24 DOTA
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
python基于urllib实现按照百度音乐分类下载mp3的方法
2015/05/25 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
2016/03/02 Python
详解Python多线程Selenium跨浏览器测试
2017/04/01 Python
python自动裁剪图像代码分享
2017/11/25 Python
Form表单及django的form表单的补充
2019/07/25 Python
Python3 无重复字符的最长子串的实现
2019/10/08 Python
时尚圣经:The Fashion Bible
2019/03/03 全球购物
eBay意大利购物网站:eBay.it
2019/09/04 全球购物
结婚典礼证婚词
2014/01/11 职场文书
党员岗位承诺书
2014/03/25 职场文书
建设办主任四风问题整改思路和措施
2014/09/20 职场文书
酒店保洁员岗位职责
2015/02/26 职场文书
心灵捕手观后感
2015/06/02 职场文书
校运会宣传稿大全
2015/07/23 职场文书
礼貌问候语大全
2015/11/10 职场文书