PHP 随机抽奖算法实现:多个奖品概率中奖
以下是一个 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。
你可以根据实际需求修改奖品列表及其概率值,以及在中奖后的处理逻辑。
原文地址: https://www.cveoy.top/t/topic/pcXq 著作权归作者所有。请勿转载和采集!