ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

如何在python中使用random.expovariate()生成整数间隔到达时间

2019-11-21 16:06:43  阅读:2175  来源: 互联网

标签:random-sample poisson python


python随机模块中,expovariate()函数生成浮点数,该浮点数可用于对泊松过程的到达间隔时间进行建模.如何利用它来生成到达之间的整数倍而不是浮点数?

解决方法:

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. .

标签:random-sample,poisson,python
来源: https://codeday.me/bug/20191121/2053110.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有