Случайная величина и равномерное распределение
Распределение — это «карта» того, какие значения принимает случайная величина и насколько часто. С него начинается весь четвёртый раздел.
Случайная величина — числовой результат случайного эксперимента (число очков на кости, рост случайного человека). Распределение описывает, с какой вероятностью она принимает свои значения.
Что такое случайная величина
Бросок кости даёт число от 1 до 6 — это случайная величина. Время ожидания автобуса, сумма заказа, рост посетителя — тоже. Случайные величины бывают двух типов:
- Дискретные — принимают отдельные значения (число очков, количество кликов).
- Непрерывные — любое значение в диапазоне (время, рост, температура).
Математическое ожидание
Ожидание (E) — это «среднее в долгосрочной перспективе»: если повторять эксперимент бесконечно, среднее значение сойдётся к ожиданию. Для дискретной величины это сумма значений, умноженных на их вероятности.
from fractions import Fraction
# Честная кость: значения 1..6, каждое с вероятностью 1/6
values = [1, 2, 3, 4, 5, 6]
expectation = sum(v * Fraction(1, 6) for v in values)
print("Ожидание (точно):", expectation)
print("Ожидание (число):", float(expectation))
Вывод:
Ожидание (точно): 7/2 Ожидание (число): 3.5
Ожидание кости — 3.5, хотя такого значения на грани нет. Ожидание — это центр распределения, а не обязательно достижимое значение.
Равномерное распределение
Самое простое распределение — равномерное: все исходы равновероятны. Дискретный пример — честная кость. Непрерывный — «случайное число от 0 до 1», где любой участок одинаковой длины равновероятен. В Python непрерывное равномерное даёт random.uniform(a, b), дискретное — random.randint.
import random
from statistics import mean
random.seed(3)
# Непрерывное равномерное на [0, 10]
sample = [random.uniform(0, 10) for _ in range(100000)]
print("Среднее выборки:", round(mean(sample), 3))
print("Теоретическое ожидание (a+b)/2:", (0 + 10) / 2)
print("Минимум:", round(min(sample), 3), "Максимум:", round(max(sample), 3))
Вывод:
Среднее выборки: 4.987 Теоретическое ожидание (a+b)/2: 5.0 Минимум: 0.0 Максимум: 10.0
Для равномерного распределения на отрезке [a, b] ожидание — это просто середина, (a + b) / 2. Наша симуляция дала 4.987 при теоретических 5.0.
Как выглядит равномерное
Если построить гистограмму равномерной величины, все столбики будут примерно одинаковой высоты — отсюда название. Проверим, поделив [0, 10] на 5 корзин.
import random
from collections import Counter
random.seed(3)
sample = [random.uniform(0, 10) for _ in range(100000)]
buckets = Counter(int(x // 2) for x in sample) # 5 корзин шириной 2
for b in range(5):
lo, hi = b * 2, b * 2 + 2
print(f"[{lo:2}, {hi:2}): {buckets[b]}")
Вывод:
[ 0, 2): 20132 [ 2, 4): 19999 [ 4, 6): 20003 [ 6, 8): 19975 [ 8, 10): 19891
Все корзины получили около 20000 значений из 100000 — распределение действительно ровное. Равномерное распределение — отправная точка; в следующих уроках мы перейдём к более «жизненным» формам, особенно к нормальной.
Итог
- Случайная величина — числовой результат случайного эксперимента; бывает дискретной и непрерывной.
- Распределение описывает, с какими вероятностями величина принимает значения.
- Ожидание E — долгосрочное среднее, центр распределения (для кости 3.5).
- В равномерном распределении все исходы равновероятны, ожидание — середина (a+b)/2.