все Python 3randomфункция
random.expovariate
распределения
Случайное число из экспоненциального распределения с интенсивностью lambd; результат всегда неотрицателен.
Синтаксис
random.expovariate(lambd=1.0)
lambd — это интенсивность, то есть единица, делённая на желаемое среднее: чтобы интервалы получались со средним 5, надо передать 0.2, а не 5. Подмена интенсивности средним — самая частая ошибка при моделировании очередей и времени между событиями. Нулевой lambd недопустим, отрицательный зеркалит выдачу в отрицательные числа, а вызов вообще без аргумента работает только начиная с Python 3.12.
Примеры
import random
print(random.expovariate(1.0) >= 0.0) # → True
print(round(sum(random.expovariate(2.0) for _ in range(10000)) / 10000, 1)) # → 0.5
print(random.expovariate(1000.0) < 1.0) # → True
print(random.expovariate(0.0)) # → ZeroDivisionError
# Python 3.12+
import random
print(type(random.expovariate()).__name__) # → float
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности