Задача на вероятность с монетами
Условие
У вас есть 100 монет, из них 99 честных и 1 нечестная (всегда выпадает орлом).
Вы случайно берёте одну монету и подбрасываете её 10 раз, все 10 раз выпадает орёл.
Какова вероятность, что это нечестная монета?
Решите задачу с использованием теоремы Байеса.
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Вероятность нечестной монеты: решение теоремой Байеса
Условие задачи
Берём 1 монету из 100 (99 честных + 1 нечестная). Подбрасываем 10 раз → 10 орлов подряд. Какова вероятность, что это нечестная монета?
Решение с использованием теоремы Байеса
Теорема Байеса:
P(A|B) = P(B|A) × P(A) / P(B)
Где:
- A = монета нечестная
- B = наблюдали 10 орлов подряд
Шаг 1: Определяем априорные вероятности
P(A) = P(нечестная) = 1/100 = 0.01
P(¬A) = P(честная) = 99/100 = 0.99
Шаг 2: Вероятность 10 орлов для каждого типа монеты
Если монета честная:
P(10 орлов | честная) = (1/2)^10 = 1/1024 ≈ 0.000977
Если монета нечестная:
P(10 орлов | нечестная) = 1^10 = 1
Шаг 3: Вычисляем полную вероятность наблюдаемого события
P(10 орлов) = P(10 орлов|нечестная)×P(нечестная) + P(10 орлов|честная)×P(честная)
P(10 орлов) = 1 × 0.01 + (1/1024) × 0.99
= 0.01 + 0.000967
= 0.010967
Шаг 4: Применяем теорему Байеса
P(нечестная | 10 орлов) = P(10 орлов | нечестная) × P(нечестная) / P(10 орлов)
= 1 × 0.01 / 0.010967
= 0.01 / 0.010967
≈ 0.9118
Ответ
Вероятность, что это нечестная монета ≈ 91.18%
Расчёт в Python
# Априорные вероятности
P_cheat = 1/100 # 0.01
P_honest = 99/100 # 0.99
# Вероятность 10 орлов для каждого типа
P_10_heads_if_cheat = 1 # нечестная всегда орёл
P_10_heads_if_honest = (1/2)**10 # честная
print(f"P(10 орлов | нечестная) = {P_10_heads_if_cheat}")
print(f"P(10 орлов | честная) = {P_10_heads_if_honest:.6f}")
# Полная вероятность
P_10_heads = (P_10_heads_if_cheat * P_cheat +
P_10_heads_if_honest * P_honest)
print(f"P(10 орлов) = {P_10_heads:.6f}")
# Теорема Байеса
P_cheat_given_10_heads = (P_10_heads_if_cheat * P_cheat) / P_10_heads
print(f"\nP(нечестная | 10 орлов) = {P_cheat_given_10_heads:.4f}")
print(f"Процентов: {P_cheat_given_10_heads * 100:.2f}%")
Вывод:
P(10 орлов | нечестная) = 1
P(10 орлов | честная) = 0.000977
P(10 орлов) = 0.010967
P(нечестная | 10 орлов) = 0.9118
Процентов: 91.18%
Интуитивное объяснение
- Начально: честная монета вероятнее (99% vs 1%)
- После наблюдений: 10 орлов подряд — очень маловероятно для честной монеты (0.1%), но типично для нечестной (100%)
- Результат: наблюдение 10 орлов существенно повышает нашу уверенность, что это нечестная монета
Сравнение с интуицией
Без байеса можно подумать: "10 орлов = 0.1% вероятность, значит 99.9% что нечестная". Но это неправильно! Нужно учитывать:
- Исходную маловероятность найти нечестную монету (1%)
- Вероятность события при каждом сценарии
Теорема Байеса корректно это балансирует.
Таблица вероятностей для разного количества орлов
| Орлов | P(10|чест) | P(нечест|n орлов) | |-------|------------|-------------------| | 1 | 0.5 | 1.01% | | 5 | 0.03125 | 3.17% | | 8 | 0.00391 | 18.27% | | 10 | 0.000977 | 91.18% | | 15 | 0.000031 | 99.69% |
Ключевые концепции
- Теорема Байеса — инвертирует условную вероятность
- Априорная вероятность — P(A) до наблюдений
- Апостериорная вероятность — P(A|B) после наблюдений
- Likelihood — P(B|A) вероятность данных при гипотезе
- Evidence — P(B) полная вероятность наблюдений
Эта задача демонстрирует, как данные обновляют наши убеждения в статистике и машинном обучении.