php 中奖概率算法实现代码

 更新时间:2017年01月25日 00:15:16   投稿:mdxy-dxy  
这篇文章主要介绍了php 中奖概率算法,需要的朋友可以参考下

实现代码:

<?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中cookies使用指南

    PHP中cookies使用指南

    PHP中cookies使用指南...
    2007-03-03
  • php设计模式 Template (模板模式)

    php设计模式 Template (模板模式)

    定义一个操作中的算法骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构可以定义该算法的某些特定步骤
    2011-06-06
  • PHP命名空间与自动加载类详解

    PHP命名空间与自动加载类详解

    这篇文章主要介绍了PHP命名空间与自动加载类,结合实例形式详细分析了php自动加载类与命名空间原理、使用方法及相关操作注意事项,需要的朋友可以参考下
    2018-09-09
  • PHP 开发环境配置(Zend Server安装)

    PHP 开发环境配置(Zend Server安装)

    运行安装文件(ZendServer-CE-php-5.3.2-5.0.1-Windows_x86.exe)开始安装,选项请参照我的选择。
    2010-04-04
  • php实现字符串首字母转换成大写的方法

    php实现字符串首字母转换成大写的方法

    这篇文章主要介绍了php实现字符串首字母转换成大写的方法,涉及php中ucfirst及ucwords函数的使用技巧,需要的朋友可以参考下
    2015-03-03
  • 详解PHP中的数据库连接持久化

    详解PHP中的数据库连接持久化

    这篇文章主要介绍了PHP中的数据库连接持久化,帮助大家更好的理解和学习使用PHP,感兴趣的朋友可以了解下
    2021-04-04
  • PHP 中执行排序与 MySQL 中排序

    PHP 中执行排序与 MySQL 中排序

    这篇文章是dragon 朋友来邮探讨后他做的一个总结。在 DB 中排序还是在 应用程序中排序是个很有趣的话题,dragon 第一份邮件中其实已经总结的很好了,我添加了一点建议而已。
    2009-04-04
  • php单态设计模式(单例模式)实例

    php单态设计模式(单例模式)实例

    这篇文章主要介绍了php单态设计模式(单例模式)实例,单态模式的主要作用是保证在面向对象编程设计中,一个类只能有一个实例对象存在,需要的朋友可以参考下
    2014-11-11
  • php异常处理捕获错误整理

    php异常处理捕获错误整理

    在本篇文章里小编给大家整理的是关于php异常处理捕获哪些错误的相关知识点,有需要的朋友们学习下。
    2019-09-09
  • php中http_build_query 的一个问题

    php中http_build_query 的一个问题

    http_build_query 远程攻击者可以利用漏洞获得敏感内存信息。请大家谨慎使用
    2012-03-03

最新评论