以下是使用 JavaScript 实现概率抽奖的示例代码:
// 奖品数组,每个奖品包含名称和对应的中奖概率
const prizes = [
{ name: '一等奖', probability: 0.1 },
{ name: '二等奖', probability: 0.2 },
{ name: '三等奖', probability: 0.3 },
{ name: '谢谢参与', probability: 0.4 }
];
function getRandomPrize(prizes) {
// 计算所有奖品概率的总和
const totalProbability = prizes.reduce((sum, prize) => sum + prize.probability, 0);
// 生成一个 0 到总概率之间的随机数
const random = Math.random() * totalProbability;
let cumulativeProbability = 0;
for (const prize of prizes) {
cumulativeProbability += prize.probability;
if (random < cumulativeProbability) {
return prize.name;
}
}
}
// 测试抽奖函数
for (let i = 0; i < 10; i++) {
console.log(getRandomPrize(prizes));
}
在上述代码中:
getRandomPrize
函数用于根据概率抽取奖品。它先计算所有奖品概率的总和,然后生成一个随机数,通过比较随机数与累积概率来确定抽中的奖品。优势:
应用场景:
可能出现的问题及解决方法:
领取专属 10元无门槛券
手把手带您无忧上云