The Monty Hall Problem — Why Switching Wins
Takeaway
If the host always opens a goat door and offers a switch, switching doubles your chance of winning: from 1/3 to 2/3.
The problem (before → after)
- Before: It feels like 50/50 after a goat is revealed—two doors remain.
- After: Conditioning on the host’s informed action shows your original 1/3 stays on your first pick; the unopened other door aggregates the remaining 2/3.
Mental model first
You pick one door out of three: 1/3 chance it’s the car. Monty, who knows where the car is, removes a wrong option for you. If you picked wrong (2/3 of the time), switching transfers you to the car; if you picked right (1/3), switching loses. Thus, switching wins 2/3 overall.
Just-in-time concepts
- Conditioning: Update probabilities when someone acts with information.
- Law of total probability: Sum over cases (car behind your pick vs not).
- Symmetry: The host’s rule breaks symmetry in your favor.
First-pass solution (case analysis)
Let C be event “car behind first choice.” P© = 1/3. If C, Monty opens a goat door and switching loses. If not C (prob 2/3), Monty is forced to open the only goat door among the other two, and switching wins. Therefore P(win by switch) = 2/3.
Iterative refinement
- N-door generalization: With N doors, one pick, host opens N−2 goat doors → switching wins with probability (N−1)/N.
- Imperfect host: If the host sometimes opens randomly or can reveal the car, the advantage shrinks; compute with Bayes’ rule.
- Simulation validates intuition when assumptions hold.
Code as a byproduct (simulation)
import random
def monty_trial():
car = random.randrange(3)
pick = random.randrange(3)
# Host opens a goat door not equal to car or pick
doors = {0,1,2}
open_options = [d for d in doors if d != car and d != pick]
opened = random.choice(open_options)
switch_to = (doors - {pick, opened}).pop()
win_if_switch = (switch_to == car)
return win_if_switch
def estimate(n=100000):
return sum(monty_trial() for _ in range(n)) / n
prob = estimate()
Principles, not prescriptions
- Track information flow: actions taken with knowledge change probabilities.
- Prefer partitioning into simple cases over gut-feel symmetry.
- Use simulation to sanity-check conditional reasoning.
Common pitfalls
- Assuming a random host: If Monty can reveal the car or choose adversarially, results differ.
- Confusing “two doors remain” with “equal probability.” Conditioning matters.
Connections and contrasts
- See also: [/blog/simpsons-paradox] (conditioning reversals), [/blog/bayesian] (Bayes’ rule mindset), [/blog/kelly-criterion] (decisions under uncertainty).
Quick checks
- Why isn’t it 50/50 after a goat is revealed? — The host’s knowledge keeps 2/3 on the other unopened door.
- What if the host opens doors at random? — Advantage depends on the chance of revealing the car; compute with Bayes.
- How does it scale to N doors? — Switching wins with probability (N−1)/N under the same host rules.
Further reading
- American Statistician correspondence on the Monty Hall problem
- “Fifty Challenging Problems in Probability” (Mosteller)