我正在编写代码来创建模拟行为。作为其中的一部分,我知道我想每分钟模拟X事件。我不想每秒只做x / 60事件。相反,我想将这些事件分布在最终平均为x / 60的二项分布中。
这些是事件,所以我们只处理整数。当然,分配并不一定是完美的。只是比每天持续每秒N次更真实的东西。
两个问题:
1)是否有任何伪代码或公式可以帮助我更好地计算这些数据集,而不仅仅是我自己在excel中的调整?
2)是否有任何我误用的术语(可能都是)可以帮助我更好地找到答案?
谢谢!
答案 0 :(得分:0)
你(可能)实际上要求泊松过程(不是二项式) - 分布 当每单位时间发生事件的概率均匀时就会出现这种情况。这种分布在排队论中很多,所以那里的参考可以提供帮助。
生成这些内容的最简单方法是生成事件之间的时间间隔:
generate_time_interval_in_seconds( X=mean_events_per_minute )
dt=-(60.0/X)*log( random_number_generator() )
return dt
random_number_generator()
在0-1
中返回一个伪随机数。取-log(.)
得到一个随机数,它是指数分布的,平均值为1
。
通过60.0/X
对此进行缩放为我们提供了指数分布的变量,其均值
是事件之间的平均间隔。
然后确定在这一分钟内发生了多少次:
count=0
T=generate_time_interval_in_seconds(X)
while( T<60.0)
++count
T+=generate_time_interval_in_seconds(X)
return count