Равномерное распределение простыми словами
Карьерник — квиз-тренажёр в Telegram с 1500+ вопросами для собесов аналитика. SQL, Python, A/B, метрики. Бесплатно.
Зачем это знать
Uniform — базовое распределение, из которого генерируются другие. random() в большинстве языков выдаёт Uniform(0, 1). Понимание uniform = понимание randomness в коде.
На собесах часто: «как сгенерировать сэмпл из distribution X имея только uniform?» — классика для middle.
Короткое объяснение
Все значения в заданном диапазоне равновероятны.
Discrete uniform
Равные вероятности для конечного набора.
Пример: кубик. P(каждая грань) = 1/6.
Continuous uniform U(a, b)
Плотность constant на [a, b], 0 вне.
f(x) = 1 / (b - a), если a ≤ x ≤ b
0, иначеХарактеристики
Discrete (1 до N)
- Mean: (N + 1) / 2
- Variance: (N² - 1) / 12
Continuous U(a, b)
- Mean: (a + b) / 2
- Variance: (b - a)² / 12
Примеры
Кубик
Discrete uniform от 1 до 6.
random()
В Python random.random() → Continuous U(0, 1).
Случайная точка в квадрате
Two independent Uniform(0, 1) → uniform on [0,1]².
В Python
import numpy as np
# Discrete 1-6
np.random.randint(1, 7, 1000)
# Continuous U(0, 1)
np.random.random(1000)
# Continuous U(5, 10)
np.random.uniform(5, 10, 1000)Inverse CDF sampling
Из uniform можно сэмплировать любое distribution с invertible CDF:
u ~ Uniform(0, 1)
x = F^(-1)(u) ~ нужное distributionЭто и есть базовый алгоритм генерации random sample.
Примеры использования
Bootstrap
Sample with replacement использует uniform для выбора индекса.
Monte Carlo
Симуляции в general используют uniform как базу.
A/B-тестирование
Assignment в группы через uniform: user_hash % 100 < 50 — почти uniform.
Initialization
Weights neural network часто инициализируют из uniform.
Uniform vs Normal
| Uniform | Normal | |
|---|---|---|
| Форма | plateau | bell curve |
| Хвосты | обрезаны | infinite |
| Среднее | (a+b)/2 | μ |
| Variance | (b-a)²/12 | σ² |
Uniform подходит для prior «ничего не знаю в этом диапазоне».
Non-informative prior
В Bayesian — uniform часто используется как non-informative prior:
Beta(1, 1) = Uniform(0, 1)Нет предпочтения ни одного значения.
На собесе
«Как сгенерировать normal через uniform?» Box-Muller transform: two uniform → two independent normal.
«Почему uniform базовое?» Любое другое distribution можно получить через inverse CDF sampling.
«Variance U(0, 1)?» 1/12 ≈ 0.083.
«Когда uniform не подходит?» Когда у данных есть «предпочтение» — концентрация вокруг значения.
Частые ошибки
Предполагать uniform, когда не оно
Многие думают, что ввод от пользователя uniform. Обычно нет (есть bias).
Игнорировать границы
[a, b] — closed interval. (a, b) — open. В непрерывном случае разница нулевая, но формально важно.
Округление
Округление continuous до discrete меняет variance.
Связанные темы
- Нормальное распределение
- Распределение Пуассона
- Bootstrap простыми словами
- Monte Carlo простыми словами
FAQ
Discrete или continuous?
Discrete: целые значения. Continuous: real numbers.
Где чаще используется?
В коде — continuous (random). В теории — оба.
Как отличить от normal?
Histogram: uniform — плоский, normal — bell.
Тренируйте статистику — откройте тренажёр с 1500+ вопросами для собесов.