Условие
Три двери, за одной приз. Вы выбираете дверь 1. Ведущий (знает, где приз) открывает одну из оставшихся, за которой ничего нет — пусть это дверь 3. Стоит ли менять выбор на дверь 2? Какова вероятность приза за каждой дверью после открытия?
Решение
Интуиция (короткий ответ)
Менять! Вероятность выиграть после смены — 2/3, без смены — 1/3.
Формально через Байеса
Обозначения:
C_k— приз за дверьюk.H_k— ведущий открыл дверьk.
Изначально P(C_1) = P(C_2) = P(C_3) = 1/3. Вы выбрали дверь 1; ведущий открыл дверь 3.
Вероятность открытия двери 3 при каждой гипотезе:
P(H_3 | C_1) = 1/2 // у ведущего выбор из двух пустых, открывает любую
P(H_3 | C_2) = 1 // дверь 1 закрыта (вы выбрали), дверь 2 — приз, остаётся 3
P(H_3 | C_3) = 0 // не откроет дверь с призом
По формуле Байеса:
P(H_3) = P(H_3|C_1)·P(C_1) + P(H_3|C_2)·P(C_2) + P(H_3|C_3)·P(C_3)
= 1/2 · 1/3 + 1 · 1/3 + 0 = 1/6 + 1/3 = 1/2
P(C_1 | H_3) = P(H_3|C_1) · P(C_1) / P(H_3) = (1/2 · 1/3) / (1/2) = 1/3
P(C_2 | H_3) = P(H_3|C_2) · P(C_2) / P(H_3) = (1 · 1/3) / (1/2) = 2/3
P(C_3 | H_3) = 0
→ менять на дверь 2 даёт 2/3 шанса выиграть.
Интуитивное объяснение
Когда вы выбираете дверь 1, шанс выиграть — 1/3. Шанс, что приз в одной из других двух — 2/3. Ведущий показывает, какая из тех двух пустая. Вся вероятность 2/3 «концентрируется» на оставшейся двери.
Чем больше дверей — тем сильнее эффект:
- 100 дверей, вы выбрали одну, ведущий открыл 98 пустых → менять = 99% шанс.
Распространённая ошибка
«Осталось две двери — 50/50». Ошибка в том, что открытие двери — не случайное событие. Ведущий знает, где приз, и осознанно открывает пустую. Это нарушает симметрию.
Если бы ведущий открывал случайно (не зная, где приз), и случайно попал в пустую — тогда было бы 50/50. Но в классической версии — нет.
Симуляция
import numpy as np
rng = np.random.default_rng(0)
def trial(switch=True):
prize = rng.integers(0, 3)
pick = 0 # WLOG выбираем дверь 0
# ведущий открывает дверь, которая != prize и != pick
options = [d for d in range(3) if d != pick and d != prize]
host_opens = rng.choice(options)
if switch:
final = next(d for d in range(3) if d not in (pick, host_opens))
else:
final = pick
return final == prize
N = 100_000
print("switch :", np.mean([trial(True) for _ in range(N)])) # ≈ 0.667
print("stay :", np.mean([trial(False) for _ in range(N)])) # ≈ 0.333Когда правильный ответ — 50/50
Вариант «случайный Монти»: ведущий открывает одну из двух оставшихся дверей случайно, не зная содержимого. Если случайно открыл пустую — после этого 50/50. Если открыл приз — игра останавливается.
Подводные камни
- Не учли, что ведущий знает: основная ошибка. Информация об открытии = эвиденс, который меняет апостериор.
- «Симметрия из двух оставшихся дверей»: симметрии нет — ваша дверь не могла быть «отброшена» ведущим.
- Vos Savant ответ 1990 года вызвал бурю писем от профессоров математики, утверждавших, что 50/50 — даже эксперты ошибаются.
- Mark Haddon / реальные игры: вариации могут менять ответ. Уточнять правила.
- Обобщение на n дверей интуитивно понятнее (99/100 vs 1/100).
Эталонный ответ
Менять. Вероятность выиграть после смены — 2/3, без смены — 1/3.
Байес:
P(C_1 | H_3) = 1/3P(C_2 | H_3) = 2/3
Ключевое: ведущий знает местоположение приза и не открывает дверь с призом. Это асимметричное условие, которое концентрирует вероятность на оставшейся неоткрытой двери.