Python 3.12+randomфункция
random.binomialvariate
распределения
Число успехов в n испытаниях Бернулли с вероятностью p — целое из биномиального распределения в диапазоне [0, n] (Python 3.12+).
Синтаксис
random.binomialvariate(n=1, p=0.5)
Это единственная функция-распределение в random, которая возвращает int, а не float. По смыслу она сворачивает в один вызов цикл sum(random.random() < p for _ in range(n)), но работает заметно быстрее и не зависит от n так сильно. Появилась только в 3.12 — на более старых версиях будет AttributeError, там сумму пишут руками; n < 0 или p вне [0, 1] дают ValueError.
Примеры
import random
print(0 <= random.binomialvariate(10, 0.5) <= 10) # → True
print(random.binomialvariate() in (0, 1)) # → True
print(random.binomialvariate(10, 0.0), random.binomialvariate(10, 1.0)) # → 0 10
print(round(sum(random.binomialvariate(10, 0.5) for _ in range(10000)) / 10000)) # → 5
print(random.binomialvariate(10, 1.5)) # → ValueError
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности