这里有新鲜出炉的 PHP 教程,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
这篇文章主要介绍了 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' => '一等奖');
来源: http://www.phperz.com/article/17/0810/340666.html