我正在尝试为正在编写的实时模拟器计算适当的超时时间:
对于 p = 成功概率,成功请求的时间 = m,失败尝试的时间 = f。5 次成功请求的平均时间是多少?
我们称总尝试次数为 x。
x = 5p + (x-5)(1-p)
x = 5 / p
总时间将是
t = 5m + (x-5)f
或者
t = 5m + (5 / p - 5)f
如果 m=1、f=2 和 p=0.1,则答案应该是 5 * 1 + 45 * 2 = 95。这检查出来了。
这里可能有错误,但我尽力了。
顺便说一句,这在统计数据交换中可能更合适,但这是答案:
如果您想要平均时间,您需要对获得五次成功所需的可能试验总数进行平均。这可能是从 5 到无限的任何地方(它需要至少 5 次试验才能获得 5 次成功,理论上你可以有无限长的失败序列)。我建议您可以愉快地在合理的时间点将其切断,以获得除了 p 的病理值之外的任何内容的精确到小数位的答案。设 n 为试验次数,我们希望从中观察 x=5 成功。n 次试验中 5 次成功的概率由二项分布给出,参数化为 x、n 和 p。设Bin(x; n,p)
为二项式概率,则与此相关的时间为:
5m + (n-5)f
要获得此数量的期望(平均值),您需要总和:
Bin(5; n,p) * 5m + (n-5)f
对于 n=5 到 n=inf。根据您的 p 值,您应该能够在 n=20 到 30 时停止,并且仍然可以获得相当准确的答案。请注意,如果您使用的是二项式概率的简单实现,则涉及 n! 项的二项式系数的计算可能会因 n 较大而失败,因此您可能需要考虑二项式的正态逼近。