Python Glossary English

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Сообщить о неточности