以下是一个 PHP 实现的多个奖品概率中奖的示例代码:

function getRandomPrize($prizes) {
    $total = 0;
    foreach ($prizes as $prize) {
        $total += $prize['probability'];
    }
    
    $randomNum = mt_rand(1, $total);
    
    foreach ($prizes as $prize) {
        if ($randomNum <= $prize['probability']) {
            return $prize['name'];
        }
        
        $randomNum -= $prize['probability'];
    }
    
    return null; // 没有中奖
}

// 奖品列表
$prizes = [
    ['name' => '奖品1', 'probability' => 1],
    ['name' => '奖品2', 'probability' => 2],
    ['name' => '奖品3', 'probability' => 3],
    ['name' => '奖品4', 'probability' => 4],
];

$winningPrize = getRandomPrize($prizes);
if ($winningPrize) {
    echo '恭喜您中奖了,奖品为:' . $winningPrize;
} else {
    echo '很遗憾,没有中奖';
}

在上面的示例代码中,getRandomPrize函数接受一个奖品列表作为参数,每个奖品都有一个概率值。函数首先计算所有奖品的概率之和,然后生成一个随机数,最后根据随机数判断中奖的奖品。如果没有中奖,则返回null

你可以根据实际需求修改奖品列表及其概率值,以及在中奖后的处理逻辑。

PHP 随机抽奖算法实现:多个奖品概率中奖

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

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