const init = (isChange) => {
const arr = []
// 随机创建抽奖盒子
const prize = Math.floor(Math.random() * 3)
arr.push({ id: prize, value: true })
for (let i = 0;i < 3;i++) {
if (i !== prize) {
arr.push({ id: i, value: false })
}
}
const beginPrize = () => {
// 抽奖
const guess = Math.floor(Math.random() * 3)
// 从剩下的两个盒子中随机打开一个未中奖的
const other = arr.filter((item) => item.id !== guess && item.value !== true)
const open = other[Math.floor(Math.random() * other.length)].id
// 剩下的要换的盒子
const change = arr.find(item => item.id !== guess && item.id !== open)['id']
// 开奖
return arr.find(item => item.id === (isChange ? change : guess))['value']
}
return beginPrize()
}
const prizeNumber = 10000000
let winNumber = 0
for (let i = 0;i < prizeNumber;i ++) {
if (init(true)) winNumber++
}
console.log(winNumber / prizeNumber * 100 + '%')
三门问题模拟解答
最新推荐文章于 2023-10-08 19:55:41 发布