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 和 MySQL 基础教程(一)
Oct 09 PHP
php表单提交问题的解决方法
Apr 12 PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
Dec 14 PHP
深入PHP magic quotes的详解
Jun 17 PHP
php后门URL的防范
Nov 12 PHP
Yii实现多数据库主从读写分离的方法
Dec 29 PHP
PHP判断浏览器、判断语言代码分享
Mar 05 PHP
php字符串替换函数substr_replace()用法实例
Mar 17 PHP
简单谈谈PHP中strlen 函数
Feb 27 PHP
php的PDO事务处理机制实例分析
Feb 16 PHP
对php 判断http还是https,以及获得当前url的方法详解
Jan 15 PHP
PHP iconv()函数字符编码转换的问题讲解
Mar 22 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 过滤危险html代码
2009/06/29 PHP
PHP 图片文件上传实现代码
2010/12/29 PHP
一致性哈希算法以及其PHP实现详细解析
2013/08/24 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
JS关闭窗口与JS关闭页面的几种方法小结
2013/12/17 Javascript
基于Javascript实现二级联动菜单效果
2016/03/04 Javascript
JavaScript 冒泡排序和选择排序的实现代码
2016/09/03 Javascript
如何使用Bootstrap创建表单
2017/03/29 Javascript
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
JS库中的Particles.js在vue上的运用案例分析
2017/09/13 Javascript
JavaScript实现兼容IE6的收起折叠与展开效果实例
2017/09/20 Javascript
关于vue中的ajax请求和axios包问题
2018/04/19 Javascript
微信小程序登录换取token的教程
2018/05/31 Javascript
浅谈JavaScript窗体Window.ShowModalDialog使用
2020/07/22 Javascript
js+canvas实现转盘效果(两个版本)
2020/09/13 Javascript
python算法学习之计数排序实例
2013/12/18 Python
基于scrapy实现的简单蜘蛛采集程序
2015/04/17 Python
python字典排序实例详解
2015/05/20 Python
Python的requests网络编程包使用教程
2016/07/11 Python
简单谈谈Python中的反转字符串问题
2016/10/24 Python
解决PyCharm import torch包失败的问题
2018/10/13 Python
Python通过for循环理解迭代器和生成器实例详解
2019/02/16 Python
基于python SMTP实现自动发送邮件教程解析
2020/06/02 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
Under Armour安德玛中国官网:美国高端运动科技品牌
2018/03/09 全球购物
女孩每月服装订阅盒:kidpik
2019/04/17 全球购物
英国领先的酒杯和水晶玻璃器皿制造商:Dartington Crystal
2019/06/23 全球购物
几道PHP面试题
2013/04/14 面试题
应用数学自荐书范文
2013/11/24 职场文书
关于雷锋的演讲稿
2014/05/10 职场文书
中学生纪念九一八事变演讲稿
2014/09/14 职场文书
软件测试专业推荐信
2014/09/18 职场文书
股权转让协议范本
2014/12/07 职场文书
python程序的组织结构详解
2021/12/06 Python
Nginx跨域问题解析与解决
2022/08/05 Servers
Go语言编译原理之源码调试
2022/08/05 Golang