как сгенерировать целое время между прибытиями с помощью random.expovariate() в python

#python #random-sample #poisson

#python #Случайный #poisson

Вопрос:

В random модуле python expovariate() функция генерирует числа с плавающей запятой, которые можно использовать для моделирования времени между прибытиями пуассоновского процесса. Как мне использовать это для генерации целых времен между прибытиями вместо чисел с плавающей запятой?

Комментарии:

1. Рассматривали ли вы возможность использования int ?

Ответ №1:

jonrsharpe уже упоминал об этом, вы можете просто позволить функции генерировать числа с плавающей запятой и самостоятельно преобразовывать выходные данные в целые числа, используя int()

Это

 >>> import random
>>> [random.expovariate(0.2) for i in range(10)]
[7.3965169407177465, 6.950770519458953, 9.690677483221426, 2.1903490679843927, 15.769487400856976, 3.508366058170216, 2.1922982271553155, 2.591955678743926, 7.791150855029359, 22.180358323964935]
  

Затем следует ввести как

 >>> import random
>>> [int(random.expovariate(0.2)) for i in range(10)]
[0, 10, 5, 15, 4, 0, 0, 4, 5, 4]
  

Другой пример

 >>> import random
>>> [int(random.expovariate(0.001)) for i in range(10)]
[435, 64, 575, 2147, 1233, 1630, 1128, 899, 180, 1190]
  

В приведенных выше примерах используется понимание списка для генерации нескольких результатов в одной строке. Конечно, можно свести к

 >>> import random
>>> int(random.expovariate(0.1)
5
  

Обратите внимание, что если вы передадите большее число .expovariate() , вы, скорее всего, получите меньшие значения с плавающей запятой в результате, а при использовании int() для преобразования чисел с плавающей запятой в целые числа числа, находящиеся между 0 и 1, будут преобразованы в 0.

Комментарии:

1. спасибо за это! ну и дела! мне не приходило в голову просто использовать int() !