Monty Hall problem
To change or not to change doors?
Most people familiar with the Monty Hall problem find it counter-intuitive that we should always accept the offer to change doors in the game, as that gives us a ~66% probability of success in the long run (vs. ~33% if we don’t change doors). You can read the Wiki article linked above to understand the logic behind it, but you can also simulate 300 attempts (x-axis) at the game to see how never changing vs. always changing doors affects the probability of success (y-axis).
The function in the code below, mHall()
, is a simple simulation of the game (no arguments needed).
Code
mHall = function(){
options = c("money", "goat", "goat")
doors = sample(x = options, size = 3)
names(doors) = c("A", "B", "C")
firstChoice = readline(prompt = "Which door do you choose: A, B, or C? ")
if(doors[firstChoice] == "money"){
badDoors = doors[!names(doors) %in% firstChoice]
newOffer = sample(x = badDoors, size = 1)
secondChoice = readline(prompt = paste("I can tell you that door ", names(newOffer),
" has a ",
doors[names(newOffer)],
". Would you like to change your answer (y or n)? ",
sep = ""))
if(secondChoice == "y"){
newChoice = doors[!names(doors) %in% c(firstChoice, names(newOffer))]
return(paste("Here's what's behind door ", names(newChoice), ": ",
newChoice[[1]], sep = ""))
} else {
return(paste("Here's what's behind door ", firstChoice, ": ",
doors[[firstChoice]], sep = ""))
}
} else {
notChosen = doors[!names(doors) %in% firstChoice]
goodDoor = doors[names(which(notChosen == "money"))]
badDoor = doors[names(which(notChosen == "goat"))]
secondChoice = readline(prompt = paste("I can tell you that door ", names(badDoor),
" has a ", doors[names(badDoor)],
". Would you like to change your answer (y or n)? ",
sep = ""))
if(secondChoice == "y"){
newChoice = goodDoor
return(paste("Here's what's behind door ", names(newChoice), ": ",
newChoice[[1]], sep = ""))
} else {
return(paste("Here's what's behind door ", firstChoice, ": ",
doors[[firstChoice]], sep = ""))
}
}
return(doors[firstChoice])
}
Copyright © 2024 Guilherme Duarte Garcia