我需要一个有效的算法和/或代码来建模系统的泊松分布

时间:2012-01-13 05:09:45

标签: java statistics probability

eeesh标题不是很好。

情况就是这样。

我有一个实时运行的模拟,我正在尝试有效地模拟在特定增量时间内具有已知期望值的随机计数率,并且概率分布具有已知的标准偏差,方差等等。

我只想要一个整数计数,也就是说,对于连续的delta时间,我得到的结果是2,1,0,3,1,2,0,1。

目前我只是将每秒的计数数乘以增量时间(以秒为单位)并将其添加到运行计数变量中,并显示我通过从浮点数转换为int来向下舍入。这不会最终削减芥末=(

我正在运行~60 fps并且如果我能帮助它就不想杀死人们。

有效实现这一目标的好方法(我正在使用Java)?

2 个答案:

答案 0 :(得分:2)

听起来Exponential distribution / Poisson process可能是合适的。指数分布模拟离散事件发生之间的时间。 lambda参数表示事件的到达率。泊松过程提供了相同基础过程的替代表示,为您提供在特定时间范围内发生的事件的计数(从0到+ inf的整数)。 泊松分布相当容易模拟。 Poisson的lambda表示时间间隔内预期的事件数,可以是simulated that way 验证这是否是表示/模拟过程的适当方式的一种方法是验证均值,方差等......是否满足它们应该是什么,是否遵循这样的过程。

答案 1 :(得分:0)

结帐Random.nextGaussian()。它返回一个平均值为0.0和S.D的随机数。 1.0。您可以使用缩放和偏移来生成数据。

例如,如果您希望S.D.的平均值为7。 3,使用

Random myRandom = new Random();
...

Double nextValue = 7.0 + myRandom.nextGaussian()*3.0;