// 奖池总量
let pond = 1000
// 奖品配置
let prize = [{
name: '01',
prob: 0.17
}, {
name: '02',
prob: 0.05
}, {
name: '03',
prob: 0.5
}, {
name: '04',
prob: 0.05
}, {
name: '05',
prob: 0.03
}, {
name: '06',
prob: 0.02
}, {
name: '07',
prob: 0.08
}, {
name: '08',
prob: 0.04
}, {
name: '09',
prob: 0.06
}]
let array = prize.map(item => {
item.prob = item.prob * 100
return item
})
// console.log(Math.floor((Math.random() * pond) + 1))
for (let i = 0; i < array.length; i++) {
i > 0 ? array[i].prob = array[i].prob + array[i - 1].prob : array[i].prob = array[i].prob
}
// 返回抽奖结果
function lotteryResult(value) {
for (let i = 0; i < array.length; i++) {
if (i > 0) {
if (value > array[i - 1].prob && value <= array[i].prob) return array[i].name
} else {
if (value > 0 && value <= array[i].prob) return array[i].name
}
}
}
let a1 = a2 = a3 = a4 = a5 = a6 = a7 = a8 = a9 = 0
for (let i = 0; i < 10000; i++) {
switch (lotteryResult((Math.random() * pond) + 1)) {
case '01':
a1++;
break;
case '02':
a2++;
break;
case '03':
a3++;
break;
case '04':
a4++;
break;
case '05':
a5++;
break;
case '06':
a6++;
break;
case '07':
a7++;
break;
case '08':
a8++;
break;
case '09':
a9++;
break;
}
}
console.log(`01出现次数: ${a1} --- 概率: ${(a1 / 1000).toFixed(4) * 100}%`)
console.log(`02出现次数: ${a2} --- 概率: ${(a2 / 1000).toFixed(4) * 100}%`)
console.log(`03出现次数: ${a3} --- 概率: ${(a3 / 1000).toFixed(4) * 100}%`)
console.log(`04出现次数: ${a4} --- 概率: ${(a4 / 1000).toFixed(4) * 100}%`)
console.log(`05出现次数: ${a5} --- 概率: ${(a5 / 1000).toFixed(4) * 100}%`)
console.log(`06出现次数: ${a6} --- 概率: ${(a6 / 1000).toFixed(4) * 100}%`)
console.log(`07出现次数: ${a7} --- 概率: ${(a7 / 1000).toFixed(4) * 100}%`)
console.log(`08出现次数: ${a8} --- 概率: ${(a8 / 1000).toFixed(4) * 100}%`)
console.log(`09出现次数: ${a9} --- 概率: ${(a9 / 1000).toFixed(4) * 100}%`)
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。