Вероятность как доля: частотный смысл

Учимся видеть вероятность как долю успехов в длинной серии испытаний и проверять её симуляцией.

Вероятность события — это доля испытаний, в которых событие происходит, когда число испытаний неограниченно растёт.

Слово «вероятность» каждый понимает интуитивно: «скорее всего», «вряд ли», «пятьдесят на пятьдесят». Но интуиция обманчива, и чтобы строить надёжные рассуждения, нужно определение, которое можно проверить. Самое наглядное из них — частотное. Представьте, что вы бросаете монету много раз и считаете, какую долю бросков выпал орёл. Если монета честная, эта доля будет колебаться вокруг числа $0{,}5$ и тем точнее к нему прижиматься, чем больше бросков. Это число и называют вероятностью орла.

Зачем нам симуляции

Главная идея всего курса проста: любую вероятностную формулу можно проверить экспериментом. Компьютер умеет «бросать монету» миллионы раз за доли секунды. Если теория утверждает, что вероятность равна $p$, то доля успехов в большой серии обязана оказаться рядом с $p$. Когда эксперимент и формула совпадают, мы доверяем обоим. Когда расходятся — значит, где-то ошибка в рассуждении. Такой подход называется методом Монте-Карло: вместо аналитического вывода мы оцениваем величину, многократно разыгрывая случайность. Название пришло от знаменитого казино в Монако — азартные игры стали удобной метафорой управляемого хаоса, из которого рождается порядок. У метода есть и обратная сторона медали: симуляция не заменяет доказательство. Совпадение чисел делает гипотезу правдоподобной, но строго обосновать формулу всё равно нужно аналитически. Зато симуляция мгновенно ловит грубые ошибки: если ваша «теория» предсказывает $0{,}5$, а эксперимент уверенно показывает $0{,}33$, значит, теория неверна, и искать опечатку нужно ещё до того, как вы покажете её кому-то. Именно поэтому связка «формула рядом с симуляцией» — главный инструмент всего этого курса.

Классическое определение вероятности для равновозможных исходов выглядит так:

$$P(A)=\frac{m}{n},$$

где $n$ — общее число равновозможных исходов, а $m$ — число исходов, благоприятных событию $A$. Для честного кубика вероятность выпадения шестёрки равна $\frac{1}{6}$, потому что один благоприятный исход из шести. Проверим это экспериментом.

Первая симуляция

Сгенерируем много бросков кубика и посчитаем долю шестёрок. В Python за случайность отвечает модуль random: функция random.randint(1, 6) возвращает целое от 1 до 6 с равной вероятностью.

import random
random.seed(42)

n = 600000
sixes = sum(1 for _ in range(n) if random.randint(1, 6) == 6)
print("Доля шестёрок:", round(sixes / n, 4))
print("Теория 1/6:   ", round(1/6, 4))

Вывод:

Доля шестёрок: 0.1664
Теория 1/6:    0.1667

Экспериментальная доля $0{,}1664$ почти совпала с теоретическим $0{,}1667$. Разница появилась из-за конечного числа бросков — это нормально и предсказуемо.

Что такое seed

Строка random.seed(42) фиксирует «начальное зерно» генератора. Это делает результат воспроизводимым: при том же seed вы получите ровно те же числа. Уберёте seed — числа будут другими при каждом запуске, но всегда близкими к теории.

Как работает под капотом

Компьютер не умеет быть по-настоящему случайным: он детерминированная машина. Поэтому random использует псевдослучайный генератор — алгоритм (в Python это Mersenne Twister), который из зерна порождает длинную последовательность чисел, статистически неотличимую от случайной. Каждое число почти равномерно распределено на отрезке $[0; 1)$. Из такой равномерной «руды» строят всё остальное: чтобы получить кубик, отрезок делят на шесть равных частей; чтобы получить монету, проверяют, попало ли число в левую половину. Когда мы суммируем единицы за каждый успех и делим на число попыток, мы вычисляем именно частоту — оценку вероятности.

Частые ошибки

Первая ошибка — ждать точного совпадения с теорией при малом числе испытаний. На 10 бросках доля орлов запросто окажется $0{,}3$ или $0{,}7$; это не значит, что монета кривая. Вторая — «ошибка игрока»: вера, что после серии орлов «должна выпасть решка для баланса». Монета не помнит прошлое, каждый бросок независим. Третья — путать вероятность одного исхода с вероятностью хотя бы одного успеха в серии; это разные величины, и мы разберём их дальше.

Итог

  • Вероятность — это доля успехов в длинной серии испытаний.
  • Для равновозможных исходов $P(A)=\frac{m}{n}$.
  • Метод Монте-Карло проверяет формулу, многократно разыгрывая случайность.
  • На конечной серии есть отклонение от теории — и это ожидаемо.
Проверьте себя
1. Что показывает частотное определение вероятности?
AТочное значение после одного испытания
BДолю успехов при большом числе испытаний
CСумму всех исходов
DСреднее арифметическое номеров граней
2. Зачем в симуляции вызывают random.seed(42)?
AЧтобы ускорить вычисления
BЧтобы сделать результат воспроизводимым
CЧтобы повысить точность до теории
DЧтобы отключить случайность совсем
3. Почему на 10 бросках монеты доля орлов может быть 0,7?
AМонета бракованная
BГенератор сломан
CПри малом числе испытаний велик случайный разброс
DВероятность орла на самом деле 0,7