Hacker News new | past | comments | ask | show | jobs | submit login

This is gonna have anthropic principle vibes but here we go. Either the host looks behind the door, or they don't and we just don't talk about games where they accidentally show you the car. The probabilities are the same. We're already conditioned on being in the "they show you a goat" universe.



They're not the same if the host chooses randomly. Check it out:

WLOG assume the car is in door A (The rest will be the same by symmetry.)

You pick A, B, or C.

The host picks one of the other two doors to show you.

The universes can be described by your choice, followed by the host's random choice. There are 6 possibilities: AB, AC, BA, BC, CA, CB.

Since we're not in a universe where the host chose a car, we eliminate BA and CA.

We are left with four possibilities: AB, AC, BC, CB.

AB = You chose the correct door. (probability 1/4)

AC = You chose the correct door. (probability 1/4)

BC = You chose the wrong door. (probability 1/4)

CB = You chose the wrong door. (probability 1/4)

Since the host's choice was random, it's 50/50 as to whether the car is behind the door you chose or the remaining door.

This same reasoning breaks down when the host knows what's behind the doors because you're no longer eliminating a couple of the universes and it's a 2/6 vs 4/6 situation.


No.

If you're playing blackjack, and you hit on a 19, but you have x-ray vision and you know a 2 is at the top of the deck, you're not playing the same game as you would be if you didn't have that knowledge.

Same with the Monty Hall problem. It is a critical distinction whether opening the door has a 0% chance, or a 33% chance, of showing you a car.


Simulate it.

I thought as you think. I wrote a simulation to show I was right. I was wrong.

I have had this interchange several times. Invariably it goes one of two ways. They have endless reasons why they have to be right and they don't need to write a goddamn simulation, or they tell me they wrote the simulation and they have learned they were wrong.


I think you’ve simply misread what they are saying. They are saying that the situation in which Monty opens a door and it reveals the grand prize, are the set of cases that we do not care about because we have already lost, and can thus discard them.

This is basically just a different way of saying that Monty looks behind the door to be sure to only reveal goats.

Yes, the probability of wins will be different in these two scenarios, but it doesn’t affect the conclusion: when Monty reveals a goat, you should always switch.

Edit: if you believe I am the confused one after this comment, I will go make the simulation as you suggest.


We have two possible games, with most of the setup the same.

In one, Monty reliably reveals a goat. In the other, Monty picks randomly between the other two doors.

We are, in parallel universes, playing both of those games. We know which. The host has just revealed a goat.

I read fouronnes3 as saying that these two situations are the same. They are not.


There is a simulation in the sibling to your comment, ready to be pasted in your browser console.


That simulates a different scenario than what’s being described here; it simulates a situation where we count the times when Monty picks the car. But those situations are irrelevant because they have no bearing on the fundamental question of whether or not to switch doors when Monty shows you a goat. Effectively, we discard all outcomes when Monty shows you the car, making it an identical “game” as when Monty simply does not ever choose the car.

As I said, the outcome per game will be different (since you suddenly have an additional opportunity to lose), but the math around whether or not to switch when shown a goat remains unchanged.


It will be different. The question comes down to P(winning by switching | monty reveals a goat). The key difference is whether P(mony reveals a goat | you chose a goat door the first time) is 50% or 100% (if you choose the car, there's a 100% chance he reveals a goat in either case). Since 'winning by switching' is the same as 'choosing a goat door first', you can apply bayes theorem to see how the results change.

To put it another way, if Monty is choosing randomly, half the time where you would win by switching, instead the game just ends/isn't counted, but the same is not true of the case where you win by not switching. From a bayesian point of view, Monty randomly revealing a goat should increase your belief that you picked the car the first time.

That said, switching is not worse than not switching unless Monty is biased towards revealing the car instead.


So let's say you and I sit down, and do the following:

    1) I roll a 3-sided die (or a 6 sided, wrapping) and keep it covered.
    2) You pick a number, 1-3
    3) I flip a coin. If it's heads, I pick the lower available number; if it's tails I pick the higher.
    4) I peak at the die.  If it's my number, we reveal and start over.
    5) I (always, at this point) offer you a wager: if the die shows your number (so you would have lost if you switch), you pay me $7; if the die doesn't show your number, I pay you $5.
Assuming you believe the die and coin are fair, etc, would you agree to play that game 1000 times? In those games, is there a reason you would turn down the wager?

Is it the same game if I flip the coin secretly, peek at the die, announce my number (picked algorithmically in the obvious way), and then pay out according to whether switching would win (as above)?

Because (assuming I've explained these games as I intend... it's getting late) I would play the former with you not the latter (but I would play the latter if we switched the payments around - I chose 5 and 7 because 7/12 is halfway between 1/2 and 2/3).


>it simulates a situation where we count the times when Monty picks the car.

No, it does not.

>> if (montys_choice === car_door) { i -= 1; continue; }

This discards the game where Monty chose a car.

>> do { montys_choice = Math.floor(Math.random() * 3); } while (montys_choice === my_choice || montys_choice === car_door);

This makes Monty never choose a door with a car.

Neither one counts the game where Monty opened a door with a car as a win for either staying or switching.


Thank you (and everyone else in this thread) for sticking with it with me. It was a struggle to read that single line of code on a cell-phone screen, and that was compounded by the fact that it turns out that I don't understand the Monty Hall problem when I thought that I did. I'm going to sit with this one for awhile.


Specifically, it's the difference between

    var num_stays_wins = 0; var num_switches_wins = 0; for (var i = 0; i < 100000; i++) { const car_door = Math.floor(Math.random() * 3); const my_choice = Math.floor(Math.random() * 3); var montys_choice; do { montys_choice = Math.floor(Math.random() * 3); } while (montys_choice === my_choice); if (montys_choice === car_door) { i -= 1; continue; } if (my_choice === car_door) { num_stays_wins += 1; } else { num_switches_wins += 1; } } console.log(num_stays_wins, num_switches_wins);
and

    var num_stays_wins = 0; var num_switches_wins = 0; for (var i = 0; i < 100000; i++) { const car_door = Math.floor(Math.random() * 3); const my_choice = Math.floor(Math.random() * 3); var montys_choice; do { montys_choice = Math.floor(Math.random() * 3); } while (montys_choice === my_choice || montys_choice === car_door); if (my_choice === car_door) { num_stays_wins += 1; } else { num_switches_wins += 1; } } console.log(num_stays_wins, num_switches_wins);
(The difference is in the calculation of `montys_choice`.)




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: