PHP 概率控制抽奖系统代码实现
以下是一个简单的概率控制抽奖系统的 PHP 代码:
<?php
// 奖品列表
$prizes = array(
array('name' => '一等奖', 'probability' => 0.1), // 10% 概率中奖
array('name' => '二等奖', 'probability' => 0.2), // 20% 概率中奖
array('name' => '三等奖', 'probability' => 0.3), // 30% 概率中奖
array('name' => '安慰奖', 'probability' => 0.4), // 40% 概率中奖
);
// 计算总概率
$totalProbability = 0;
foreach ($prizes as $prize) {
$totalProbability += $prize['probability'];
}
// 生成随机数
$rand = mt_rand() / mt_getrandmax() * $totalProbability;
// 计算中奖奖品
$prizeIndex = 0;
$prizeProbability = $prizes[$prizeIndex]['probability'];
while ($rand > $prizeProbability) {
$prizeIndex++;
$prizeProbability += $prizes[$prizeIndex]['probability'];
}
// 输出中奖信息
echo '恭喜您中了:' . $prizes[$prizeIndex]['name'];
?>
该代码首先定义了一个奖品列表,每个奖品都有一个名称和一个概率,总概率等于所有奖品概率之和。然后生成一个 0 到总概率之间的随机数,并循环判断该随机数是否在某个奖品的概率范围内,直到找到中奖的奖品为止。最后输出中奖信息。
原文地址: https://www.cveoy.top/t/topic/mUSq 著作权归作者所有。请勿转载和采集!