События, независимость и условная вероятность

Условная вероятность отвечает на вопрос «как меняется шанс события A, если мы узнали, что произошло B».

Условная вероятность P(A|B) — вероятность события A при условии, что событие B уже произошло: P(A|B) = P(A и B) / P(B).

Комбинации событий: И, ИЛИ

События можно комбинировать. A и B — произошли оба. A или B — произошло хотя бы одно. Для «или» работает формула включения-исключения: P(A или B) = P(A) + P(B) − P(A и B) (вычитаем пересечение, чтобы не считать его дважды).

# Колода 52 карты. A = "карта червы", B = "карта-картинка (J,Q,K)"
cards = 52
hearts = 13                 # P(черва) = 13/52
faces = 12                  # J,Q,K в 4 мастях = 12
hearts_and_faces = 3        # J,Q,K червей = 3

P_A = hearts / cards
P_B = faces / cards
P_A_and_B = hearts_and_faces / cards
P_A_or_B = P_A + P_B - P_A_and_B

print("P(черва)         =", round(P_A, 4))
print("P(картинка)      =", round(P_B, 4))
print("P(черва И картинка) =", round(P_A_and_B, 4))
print("P(черва ИЛИ картинка) =", round(P_A_or_B, 4))

Вывод:

P(черва)         = 0.25
P(картинка)      = 0.2308
P(черва И картинка) = 0.0577
P(черва ИЛИ картинка) = 0.4231

Независимые события

Два события независимы, если наступление одного не меняет вероятность другого. Тогда вероятность их совместного наступления — просто произведение: P(A и B) = P(A)·P(B). Классика — броски монеты: результат второго не зависит от первого.

# Два независимых броска монеты
P_heads = 0.5
print("P(орёл и орёл) =", P_heads * P_heads)          # 0.25
print("P(орёл, потом решка) =", P_heads * P_heads)    # 0.25
# Три орла подряд
print("P(три орла подряд) =", P_heads ** 3)           # 0.125

Вывод:

P(орёл и орёл) = 0.25
P(орёл, потом решка) = 0.25
P(три орла подряд) = 0.125

Условная вероятность меняет картину

Когда события зависимы, знание об одном меняет шансы другого. Бросаем кость; P(выпало 6) = 1/6. Но если нам сказали «выпало чётное» (это B), то осталось три варианта {2, 4, 6}, и P(6 | чётное) = 1/3 — шанс вырос! Формула: делим вероятность пересечения на вероятность условия. Проверим симуляцией.

import random
random.seed(7)

N = 600000
count_even = 0       # сколько раз выпало чётное (условие B)
count_six_given = 0  # из них — сколько раз именно 6 (событие A и B)

for _ in range(N):
    d = random.randint(1, 6)
    if d % 2 == 0:           # чётное
        count_even += 1
        if d == 6:
            count_six_given += 1

print("P(6 | чётное) ≈", round(count_six_given / count_even, 4))
print("Теоретически 1/3 =", round(1/3, 4))

Вывод:

P(6 | чётное) ≈ 0.3325
Теоретически 1/3 = 0.3333

Симуляция подтвердила: знание «чётное» подняло вероятность шестёрки с 1/6 до 1/3. Это и есть суть условной вероятности — обновление шансов в свете новой информации. На этой идее построен следующий урок про теорему Байеса.

Итог

  • P(A или B) = P(A) + P(B) − P(A и B) — вычитаем пересечение.
  • Независимые события: P(A и B) = P(A)·P(B); знание одного не меняет другое.
  • Условная вероятность P(A|B) = P(A и B) / P(B) — шанс A при известном B.
  • Условие может как повышать, так и понижать вероятность события.
Проверьте себя
1. Чему равно P(A или B)?
AP(A) · P(B)
BP(A) + P(B) − P(A и B)
CP(A) + P(B)
DP(A и B) / P(B)
2. Когда P(A и B) = P(A)·P(B)?
AВсегда
BКогда события A и B независимы
CТолько для бросков монеты
DКогда A и B несовместны
3. Кость дала чётное число. Чему равна P(выпало 6 | чётное)?
A1/6
B1/3
C1/2
D1
Поддержать проект