PHP 随机抽奖算法:一等奖概率分析

以下代码示例展示了一个简单的 PHP 随机抽奖算法,并分析一等奖的概率。

$prizes = [
    ['name' => '一等奖', 'probability' => 1],
    ['name' => 'a', 'probability' => 111/5],
    ['name' => 'b', 'probability' => 111/5],
    ['name' => 'c', 'probability' => 111/5],
    ['name' => 'd', 'probability' => 111/5],
    ['name' => 'e', 'probability' => 111/5],
];

function lottery($prizes = []) {

    // 计算总概率
    $totalProbability = array_sum(array_column($prizes, 'probability'));

    // 生成随机数
    $randomNumber = mt_rand(1, $totalProbability);

    // 根据随机数确定中奖结果
    $currentProbability = 0;
    foreach ($prizes as $prize) {
        $currentProbability += $prize['probability'];
        if ($randomNumber <= $currentProbability) {
            return $prize['name'];
        }
    }
}

$l = lottery($prizes);

根据给定的代码,一等奖的概率是 1。因为一等奖的概率被设置为 1,而其他奖项的概率是 111/5,所以一等奖的概率是最高的。

PHP 随机抽奖算法:一等奖概率分析

原文地址: https://www.cveoy.top/t/topic/fCPt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录