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中for循环语句的几种变型
Nov 26 PHP
发款php蜘蛛统计插件只要有mysql就可用
Oct 12 PHP
几款免费开源的不用数据库的php的cms
Dec 19 PHP
使用迭代器 遍历文件信息的详解
Jun 08 PHP
PHP 函数call_user_func和call_user_func_array用法详解
Mar 02 PHP
php中__destruct与register_shutdown_function执行的先后顺序问题
Oct 17 PHP
php实现将任意进制数转换成10进制的方法
Apr 17 PHP
PHP合并数组+号和array_merge的区别
Jun 25 PHP
PHP模板解析类实例
Jul 09 PHP
使用YII2框架实现微信公众号中表单提交功能
Sep 04 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
Apr 23 PHP
tp5(thinkPHP5框架)使用DB实现批量删除功能示例
May 28 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
Smarty中的注释和截断功能介绍
2015/04/09 PHP
33道php常见面试题及答案
2015/07/06 PHP
PHPExcel实现表格导出功能示例【带有多个工作sheet】
2018/06/13 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
一个js实现的所谓的滑动门
2007/05/23 Javascript
Javascript valueOf 使用方法
2008/12/28 Javascript
用javascript作一个通用向导说明
2011/08/30 Javascript
jquery和css3实现的炫酷时尚的菜单导航
2014/09/01 Javascript
javascript随机显示背景图片的方法
2015/06/18 Javascript
jQuery mobile 移动web(4)
2015/12/20 Javascript
前端框架Vue.js中Directive知识详解
2016/09/12 Javascript
jQuery ajaxForm()的应用
2016/10/14 Javascript
js实现图片切换(动画版)
2016/12/25 Javascript
html5 canvas 详细使用教程
2017/01/20 Javascript
vue时间格式化实例代码
2017/06/13 Javascript
原生JavaScript实现留言板
2021/01/10 Javascript
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
使用django-suit为django 1.7 admin后台添加模板
2014/11/18 Python
对Python3 * 和 ** 运算符详解
2019/02/16 Python
基于python进行抽样分布描述及实践详解
2019/09/02 Python
Python基于wordcloud及jieba实现中国地图词云图
2020/06/09 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
意大利奢侈品购物网站:Giglio
2018/01/05 全球购物
Ajax的优点和缺点
2014/11/21 面试题
毕业生的求职信范文分享
2013/12/04 职场文书
文明礼仪小标兵事迹
2014/01/12 职场文书
25岁生日感言
2014/01/13 职场文书
2014年节能降耗工作总结
2014/12/11 职场文书
维稳工作承诺书
2015/01/20 职场文书
公司前台接待岗位职责
2015/04/03 职场文书
预防艾滋病宣传活动总结
2015/05/09 职场文书
小学运动会前导词
2015/07/20 职场文书
《百分数的认识》教学反思
2016/02/19 职场文书
优秀范文:读《红岩》有感3篇
2019/10/14 职场文书
Python 中的Sympy详细使用
2021/08/07 Python
Moment的feature导致线上bug解决分析
2022/09/23 Javascript