3

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

4

2 回答 2

4

这真的取决于你想使用什么分布,你指定的只是平均值。就像你说的,我希望泊松分布能很好地满足你的需求,但你也在标题中加上“均匀随机变量”,这是一个不同的分布,无论如何让我们选择前者。

因此,如果您想要泊松分布,您可以使用累积密度函数非常轻松地生成样本。只需遵循此处的伪代码: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;
于 2011-02-14T04:06:46.550 回答
0

通过独立试验以固定比例生成真/假结果的随机变量称为几何随机变量。在任何时间范围内,以 1/(5*fps) 的概率生成真值,从长远来看,您将平均每 5 秒得到一个真值。

于 2013-10-24T17:04:23.583 回答