概率中奖

简介:
<?php
    /**
     * [gailv description]
     * @param array $data
     * @return int $result 正确返回中奖ID 错误就返回0
     */
    function probability($data)
    {
        if (!is_array($data) || empty($data)) {
            return 0;
        }

        $result = 0;

        //概率和
        $probabilitySum = array_sum($data);

        foreach ($data as $key => $value) {
            $rand = mt_rand(1, $probabilitySum);
            if ($rand <= $value) {
                $result = $key;
            }else{
                $probabilitySum -= $value;
            }
        }

        return $result;
    }

    $data = array(
        1 => 10,
        2 => 30,
        3 => 40,
        4 => 90,
        10 => 100
    );

    var_dump(probability($data));


    

 

目录
相关文章
|
10月前
|
弹性计算 运维 Shell
统计双色球各个数字的中奖概率
【4月更文挑战第29天】
204 1
|
10月前
|
存储 弹性计算 Shell
统计双色球各个数字的中奖概率
【4月更文挑战第29天】
302 1
|
数据安全/隐私保护
【概率論】常用專業名詞中韓對照表 | 확률론 한중 번역표
【概率論】常用專業名詞中韓對照表 | 확률론 한중 번역표
85 0
|
算法 Java Python
深入理解动态规划算法 | 凑硬币
深入理解动态规划算法 | 凑硬币
175 0
|
算法 Java
动态规划算法-凑硬币
动态规划算法-凑硬币
126 0
|
算法 C++
【每日算法Day 98】慈善赌神godweiyang教你算骰子点数概率!
【每日算法Day 98】慈善赌神godweiyang教你算骰子点数概率!
184 0
|
算法 小程序 开发者
一个很好用的中奖概率控制器
今天分享一个非常好用的概率控制器,可以用于游戏中两种行为出现的概率控制。这个方法来自于《大师谈游戏设计》(作者:吉泽秀雄)一书中,作者提到的一个 WIN-LOSS 控制器。
227 0
刷爆力扣之矩阵中的幻方
刷爆力扣之矩阵中的幻方
刷爆力扣之矩阵中的幻方
|
程序员
生男生女概率一样吗?
生男孩的概率和生女孩的概率是一样的吗,以下内容解决你的疑惑。
398 0
生男生女概率一样吗?