【发布时间】:2011-06-26 17:11:58
【问题描述】:
我想要一个函数,它将自上次调用以来经过的秒数作为输入,并返回 true 或 false 以判断事件是否应该在该时间段内发生。我希望它平均每经过 X 次(例如 5 秒)就会触发一次。如果可以不使用任何状态,我也很感兴趣,this question 的答案使用了。
我想要完全准确,它必须返回一个整数来表示应该发生的事件的数量,在它每 10*X 次或类似的情况下调用一次的情况下,所以加分!
【问题讨论】:
-
这有什么不同: foo(time_elapsed) { return floor(time_elapsed/X); }?
-
@anonymous_21321:这是一个离散事件。它不会一次发生 0.2 次,而是一次发生。
-
@anonymous_21321:哦,更糟糕的是,如果我想要每秒 1 个事件,而你的 func 总是以 0.2 调用,它永远不会触发事件!
-
我认为如果你想将过程建模为随机,你的函数应该返回一个概率,而不是一个布尔值。
-
@belisarius:嗯,有趣的一点。这对我行得通!提供一个答案,我会看看它。它不应该做一些愚蠢的事情,比如 return 1.0 if interval >= X 虽然
标签: language-agnostic math random time timing