服务器之家

服务器之家 > 正文

php 中奖概率算法实现代码

时间:2021-04-16 17:48     来源/作者:PHP教程网

实现代码:

php" id="highlighter_454581">
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?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' => '一等奖');

标签:

相关文章

热门资讯

2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全
2020微信伤感网名听哭了 让对方看到心疼的伤感网名大全 2019-12-26
yue是什么意思 网络流行语yue了是什么梗
yue是什么意思 网络流行语yue了是什么梗 2020-10-11
背刺什么意思 网络词语背刺是什么梗
背刺什么意思 网络词语背刺是什么梗 2020-05-22
Intellij idea2020永久破解,亲测可用!!!
Intellij idea2020永久破解,亲测可用!!! 2020-07-29
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总
苹果12mini价格表官网报价 iPhone12mini全版本价格汇总 2020-11-13
返回顶部