物事を追跡することにより、正確な式を得ることができます。
ましょう成功とする確率もK = 8あなたがカウントしたい行の成功数になります。これらは問題のために修正されています。変数値はmで、ブロックに残っている試行回数です。およびj、すでに観測された連続成功の数。m回の試行が使い果たされる前に、最終的にk個の成功を達成する可能性をf p 、k(j 、m )と書く。我々は、シークF 1 / 3 、8p=1/3k=8mjkmfp,k(j,m)。f1/3,8(0,25)
成功を、m > 0回の試行で続けて見たと仮定します。次の試行は成功であり、確率はpです(この場合、jはj + 1に増加します)。または、確率1 - pの失敗です。この場合、jは0にリセットされます。どちらの場合でも、mは1減少します。ホセjthm>0pjj+11−pj0m1
fp,k(j,m)=pfp,k(j+1,m−1)+(1−p)fp,k(0,m−1).
条件を出発物質として、我々は明らか結果有するのためのM ≥ 0(すなわち、すでに見てきたK行のを)と、F 、P 、K(J 、M )= 0のため、Kを- j > m(つまり、kを得るのに十分な試行が残っていないfp,k(k,m)=1m≥0kfp,k(j,m)=0k−j>mk行で)。計算が高速かつ簡単になりました(動的プログラミングを使用、またはこの問題のパラメーターが非常に小さいため、再帰)
fp,8(0,25)=18p8−17p9−45p16+81p17−36p18.
ときに、この利回り80897 / 43046721 ≈ 0.0018793。p=1/380897/43046721≈0.0018793
R
これをシミュレートする比較的高速なコードは
hits8 <- function() {
x <- rbinom(26, 1, 1/3) # 25 Binomial trials
x[1] <- 0 # ... and a 0 to get started with `diff`
if(sum(x) >= 8) { # Are there at least 8 successes?
max(diff(cumsum(x), lag=8)) >= 8 # Are there 8 successes in a row anywhere?
} else {
FALSE # Not enough successes for 8 in a row
}
}
set.seed(17)
mean(replicate(10^5, hits8()))
3秒の計算後、出力はです。これは高いように見えますが、標準エラーはわずか1.7です。さらに10 6回繰り返して0.001867を生成しました。標準エラーは予想よりも0.3少ないだけです。(二重チェックとして、このコードの以前のバージョンには微妙なバグがあったため、Mathematicaで 400,000回の反復を実行し、0.0018475の推定値を得ました。)0.002131060.0018670.30.0018475
この結果は、の1/10未満の推定値である問題です。しかし、おそらく、私は完全にそれを理解していない:「8つの試験が行に修正得るためにあなたが8つの総ブロックを持っている...」の別の解釈は、回答ビーイングが対等に求められていることである1 - (1 - F 1 / 3 、8(0を、25 ))8)= 0.0149358 ...。1−(1−(1/3)8)136≈0.02051−(1−f1/3,8(0,25))8)=0.0149358...