#设置模拟次数
n <- 100000
#换门得到汽车次数
change_win <- 0
#不换门得到次数
keep_win <- 0
#模拟n次
for (i in 1:n) {
#随机生成1至3间的数字表示初次选择的门号
choose <- sample(1:3, 1)
#随机生成1至3之间的数字表示汽车存在的门号
being <- sample(1:3, 1)
if(choose == being){
#当初次选择的门号与汽车存在的门号一致时保持门号可以获得汽车
keep_win <- keep_win + 1
}
else{
#当初次选择的门号与汽车存在的门号不一致时改变门号可以获得汽车
change_win <- change_win + 1
}
}
#计算选择n次时的概率
keep <- keep_win / n
change <- change_win / n
cat("不换门获奖的概率为", keep, "\n", "换门获胜的概率为", change)
使用R语言解决三门问题
该代码模拟了经典的MontyHall问题,通过随机选择门并模拟游戏过程来计算换门和不换门赢得汽车的概率。在100,000次模拟中,计算出不换门获胜的概率和换门获胜的概率,展示了在已知信息下改变选择能提高获胜机会的现象。
摘要由CSDN通过智能技术生成