私が書いているリアルタイムシミュレーターの適切なタイムアウト時間を計算しようとしています:
p =成功の確率、成功したリクエストの時間= m、失敗した試行の時間=fの場合。5つのリクエストが成功するまでの平均時間はどれくらいですか?
私が書いているリアルタイムシミュレーターの適切なタイムアウト時間を計算しようとしています:
p =成功の確率、成功したリクエストの時間= m、失敗した試行の時間=fの場合。5つのリクエストが成功するまでの平均時間はどれくらいですか?
ちなみに、これはおそらく統計交換でより適切ですが、答えは次のとおりです。
平均時間が必要な場合は、5 回成功するために必要な試行回数の合計を平均する必要があります。これは 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
for for for n=5 から n=inf. p の値に応じて、n=20 ~ 30 で停止しても、かなり正確な答えを得ることができるはずです。二項確率の単純な実装を使用している場合は、n! の項を含む二項係数の計算が適度に大きな n の場合に失敗する可能性があるため、二項の正規近似を考慮する必要があることに注意してください。
試行回数の合計を 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 になります。これで問題ありません。
ここでエラーが発生する可能性がありますが、最善を尽くしました。