我有一个实时运行的程序,帧率可变,例如可以是 15 帧/秒,也可以是 60 帧/秒。我希望事件平均每 5 秒发生一次。每一帧,我都想调用一个函数,该函数将自上一帧以来的时间作为输入,并在调用它的情况下平均每 5 秒的运行时间返回一次 True。我认为与泊松分布有关。我该怎么做?
最佳答案
这实际上取决于您要使用的分布,您指定的只是平均值。就像你说的那样,我希望泊松分布能很好地满足你的需求,但你还在标题中加上了“均匀随机变量”,这是一种不同的分布,无论如何,我们还是选择前者吧。
因此,如果您想要泊松分布,则可以使用累积密度函数非常轻松地生成样本。只需按照此处的伪代码: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;
关于language-agnostic - 实时生成(泊松?)随机变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4988585/