实时生成(泊松?)随机变量

时间:2011-02-14 03:25:56

标签: language-agnostic math random real-time frame-rate

我有一个实时运行的程序,具有可变帧速率,例如可以是15 fps,可以是60fps。我希望事件平均每5秒发生一次。每一帧,我想调用一个函数,它将自上一帧开始的时间作为输入,并且在调用它的过程中每5秒钟平均返回一次True。我想与泊松分布有关...我该怎么做?

2 个答案:

答案 0 :(得分:4)

这实际上取决于您想要使用的分发,您指定的只是平均值。我想,就像你说的那样,希望Poisson分布能够很好地满足你的需求,但你也可以在标题中加入“均匀随机变量”,这是一个不同的分布,无论如何我们只能选择前者。

因此,如果泊松分布是您想要的,您可以使用累积密度函数非常容易地生成样本。只需遵循这里的伪代码:Generating Poisson RVs,5秒是lambda的值。我们称这个函数为Poisson_RN()。

此时的算法非常简单。

global float next_time = current_time()

boolean function foo()
if (next_time < current_time())
  next_time = current_time() + Poisson_RN();
  return true;
return false;

答案 1 :(得分:0)

随机变量以固定比例生成具有独立试验的真/假结果称为Geometric random variable。在任何时间范围内,以1 /(5 * fps)的概率生成true,从长远来看,您将获得每5秒平均一次的真实值。