Собесов

zadachi_ds: Ожидание трёх орлов подряд при бросках монеты

Статистика и теорверЦепи Маркова / E[t]СредняяMiddle

Условие

Бросаем честную монету. Какое математическое ожидание числа бросков до появления трёх орлов подряд (ООО)?

Решение

Подход — цепь Маркова с состояниями «прогресс»

Состояния:

  • S0 — ноль орлов подряд (только что начали или выпала решка).
  • S1 — один орёл подряд.
  • S2 — два орла подряд.
  • S3 — три орла подряд (конец).

Из любого состояния:

  • Орёл (вероятность 1/2) → переход в следующее.
  • Решка (вероятность 1/2) → возврат в S0.

Пусть E_i = ожидание оставшихся бросков из состояния S_i.

E_0 = 1 + 0.5 · E_1 + 0.5 · E_0
E_1 = 1 + 0.5 · E_2 + 0.5 · E_0
E_2 = 1 + 0.5 · 0   + 0.5 · E_0
E_3 = 0

Решение системы

Из E_2 = 1 + 0.5 E_02 E_2 = 2 + E_0.

Из E_1 = 1 + 0.5 E_2 + 0.5 E_0:

E_1 = 1 + 0.5 (1 + 0.5 E_0) + 0.5 E_0
    = 1 + 0.5 + 0.25 E_0 + 0.5 E_0
    = 1.5 + 0.75 E_0

Из E_0 = 1 + 0.5 E_1 + 0.5 E_00.5 E_0 = 1 + 0.5 E_1E_0 = 2 + E_1.

Подставляем:

E_0 = 2 + 1.5 + 0.75 E_0
0.25 E_0 = 3.5
E_0 = 14

Ответ: 14 бросков

Общая формула

Для появления k орлов подряд при честной монете:

E_k = 2^(k+1) − 2

Проверка: k=1 → 2, k=2 → 6, k=3 → 14, k=4 → 30.

Симуляция

import numpy as np
rng = np.random.default_rng(0)
def trial(k):
    streak, count = 0, 0
    while streak < k:
        count += 1
        if rng.random() < 0.5:
            streak += 1
        else:
            streak = 0
    return count
 
print(np.mean([trial(3) for _ in range(100_000)]))   # ≈ 14.0

Несимметричная монета (P(H) = p, P(T) = q = 1-p)

E_k = (1 / p^k) · (1 + p + p² + ... + p^(k-1))
    = (1 - p^k) / (p^k · (1 - p))
    = (1 - p^k) / (q · p^k)

При p = 0.5: E_k = (1 - 1/2^k) · 2^k · 2 = 2^(k+1) - 2.  ✓

При p = 0.6, k = 3: E_3 = (1 - 0.216) / (0.4 · 0.216) ≈ 0.784 / 0.0864 ≈ 9.07.

Сравнение с «ОРО» (орёл-решка-орёл)

«ООО» vs «ОРО» — разное ожидание! Для «ОРО» оказывается 10 (не 8). Это парадокс Penney's game: одна последовательность может «съесть» другую.

ООО: E = 14
ОРО: E = 10
ОРР: E = 8
РРР: E = 14

Контринтуитивно: «ОРО» появляется быстрее, чем «ООО», хотя обе имеют вероятность 1/8.

Подводные камни

  1. «1/8 → ожидание = 8» — неверно. Это работало бы для позиции в последовательности, но не для первого появления в результате последовательных бросков.
  2. Симметрия по кажущейся равноправности ломается: ООО при «провале» отбрасывает всю серию, ОРО — частично сохраняет (О из ОРО продолжает следующую попытку).
  3. Honest coin assumption: если монета смещена — ожидание сильно меняется.
  4. Markov assumption: бросаемые монеты независимы; реальные физические монеты — слегка зависят (но это пренебрежимо).
  5. while без верхней границы: в симуляции стоит ставить ограничение (1000 бросков) для безопасности.
  6. Variance ожидания: σ для k=3 ≈ 16. То есть отдельные эксперименты часто длятся 50+ бросков.

Эталонный ответ

E = 2^(k+1) − 2,  при p = 0.5
k = 3 → E = 14

Решение через цепь Маркова с состояниями «прогресс» (0/1/2/3 орлов подряд) и системой E_i = 1 + 0.5 E_{i+1} + 0.5 E_0. Контринтуитивно: «ОРО» имеет ожидание 10 при той же базовой вероятности 1/8 (парадокс Penney's game).

Хочешь увидеть разбор?

Зарегистрируйся бесплатно — откроется развёрнутое решение этой задачи и ещё 4 на выбор.

Зарегистрироваться и увидеть разбор
Уже есть аккаунт? Войти