Бернулли и биномиальное распределение
Два базовых распределения для подсчёта успехов в серии независимых попыток.
Биномиальное распределение описывает число успехов в $n$ независимых испытаниях, каждое с вероятностью успеха $p$.
Большинство «считающих» задач сводятся к одной схеме: повторяем независимый опыт с двумя исходами и считаем успехи. Один такой опыт — это Бернулли, серия из $n$ опытов — биномиальное распределение. Они описывают всё от бросков монеты до контроля качества на конвейере. Что такое вообще «распределение»? Это полный паспорт случайной величины: перечень всех её возможных значений вместе с вероятностями. Зная распределение, мы знаем о величине всё — можем посчитать любое ожидание, любую вероятность, любой разброс. Поэтому теория вероятностей во многом сводится к каталогу типовых распределений: вместо того чтобы каждый раз выводить формулы с нуля, мы узнаём в задаче знакомый «шаблон» и берём готовые ответы. Бернулли и биномиальное — два первых и самых частых шаблона в этом каталоге; почти любая ситуация «успех или неудача, повторённая несколько раз» — это они.
Распределение Бернулли
Случайная величина Бернулли принимает значение 1 (успех) с вероятностью $p$ и 0 (неудача) с вероятностью $1-p$. Её характеристики просты:
$$\mathbb{E}[X]=p,\qquad \mathrm{Var}(X)=p(1-p).$$
Это «атом» — кирпичик, из которого собирают более сложные распределения.
Биномиальное распределение
Сумма $n$ независимых бернуллиевских величин — число успехов $X$ в $n$ попытках. Вероятность ровно $k$ успехов:
$$P(X=k)=\binom{n}{k}p^k(1-p)^{n-k}.$$
Множитель $\binom{n}{k}$ считает, сколькими способами успехи могут расположиться среди попыток, а $p^k(1-p)^{n-k}$ — вероятность одной конкретной такой последовательности. По линейности ожидания и аддитивности дисперсии для независимых величин:
$$\mathbb{E}[X]=np,\qquad \mathrm{Var}(X)=np(1-p).$$
Возьмём $n=10$, $p=0{,}3$. Тогда $\mathbb{E}[X]=3$. Проверим и ожидание, и вероятность $P(X=3)$ симуляцией.
import random, math
random.seed(14)
n_trials, p = 10, 0.3
N = 500000
successes = []
for _ in range(N):
s = sum(1 for _ in range(n_trials) if random.random() < p)
successes.append(s)
mean = sum(successes) / N
exactly_3 = successes.count(3) / N
theory_3 = math.comb(10, 3) * 0.3**3 * 0.7**7
print("E[X] симуляция:", round(mean, 4), "| теория np =", n_trials*p)
print("P(X=3) симул.: ", round(exactly_3, 4), "| теория =", round(theory_3, 4))Вывод:
E[X] симуляция: 3.0009 | теория np = 3.0 P(X=3) симул.: 0.2666 | теория = 0.2668
И среднее число успехов, и вероятность ровно трёх успехов точно совпали с формулами.
Форма распределения
При $p=0{,}5$ биномиальное распределение симметрично, при других $p$ — скошено. С ростом $n$ оно становится всё более «колоколообразным» — это предвестник центральной предельной теоремы, к которой мы придём в разделе про предельные теоремы.
Как работает под капотом
В симуляции мы буквально складываем $n$ независимых индикаторов random.random() < p — то есть строим биномиальную величину из бернуллиевских кирпичиков, как и в выводе формулы. Подсчёт доли исходов, где сумма равна 3, даёт эмпирическую оценку $P(X=3)$. Совпадение с $\binom{10}{3}p^3(1-p)^7$ подтверждает, что биномиальная формула правильно учитывает и число расстановок успехов, и вероятность каждой.
Частые ошибки
Первая ошибка — забыть биномиальный коэффициент и считать только $p^k(1-p)^{n-k}$: это вероятность одной последовательности, а не всех сразу. Вторая — применять биномиальное распределение к зависимым испытаниям (например, выбор без возврата — там гипергеометрическое). Третья — путать $n$ (число попыток) и $k$ (число успехов) в формуле ожидания: ожидание это $np$, а не $nk$ или $pk$.
Итог
- Бернулли: один опыт, $\mathbb{E}[X]=p$, $\mathrm{Var}(X)=p(1-p)$.
- Биномиальное: число успехов в $n$ опытах, $P(X=k)=\binom{n}{k}p^k(1-p)^{n-k}$.
- $\mathbb{E}[X]=np$, $\mathrm{Var}(X)=np(1-p)$.
- Биномиальный коэффициент считает все расположения успехов — забывать его нельзя.