Wenn Sie den Überblick behalten, erhalten Sie eine genaue Formel .
Lassen Sie die Wahrscheinlichkeit des Erfolgs und k = 8 , die Anzahl der Erfolge in einer Zeile , die Sie zählen möchten. Diese sind für das Problem behoben. Variable Werte sind m , die Anzahl der im Block verbleibenden Versuche; und j die Anzahl der bereits beobachteten aufeinanderfolgenden Erfolge. Die Chance, letztendlich k Erfolge in Folge zu erzielen, bevor m Versuche erschöpft sind, sei f p , k ( j , m ) geschrieben . Wir suchen f 1 / 3 , 8 (p = 1 / 3k = 8mjkmfp , k( j , m ) .f1 / 3 , 8( 0 , 25 )
Angenommen, wir haben gerade unseren Erfolg in Folge mit m > 0 verbleibenden Versuchen gesehen. Der nächste Versuch ist entweder ein Erfolg, wobei die Wahrscheinlichkeit p - in diesem Fall j auf j + 1 - erhöht wird ; oder es ist ein Fehler mit der Wahrscheinlichkeit 1 - p -, in welchem Fall j auf 0 zurückgesetzt wird . In beiden Fällen nimmt m um 1 ab . Woherjthm > 0pjj + 11 - pj0m1
fp , k(j,m)=pfp,k(j+1,m−1)+(1−p)fp,k(0,m−1).
As starting conditions we have the obvious results fp,k(k,m)=1 for m≥0 (i.e., we have already seen k in a row) and fp,k(j,m)=0 for k−j>m (i.e., there aren't enough trials left to get k in a row). It is now fast and straightforward (using dynamic programming or, because this problem's parameters are so small, recursion) to compute
fp,8(0,25)=18p8−17p9−45p16+81p17−36p18.
When p=1/3 this yields 80897/43046721≈0.0018793.
Relatively fast R
code to simulate this is
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()))
Nach 3 Sekunden Berechnung beträgt die Ausgabe . Obwohl dies hoch aussieht, sind es nur 1,7 Standardfehler. Ich führte weitere 10 6 Iterationen aus und ergab 0,001867 : nur 0,3 Standardfehler weniger als erwartet. (Da eine frühere Version dieses Codes einen subtilen Fehler aufwies , führte ich in Mathematica außerdem 400.000 Iterationen aus , um eine Schätzung von 0,0018475 zu erhalten .)0.002131060.0018670.30.0018475
Dieses Ergebnis ist weniger als ein Zehntel des Schätzwert von in Frage. Aber vielleicht habe ich nicht ganz verstanden es: eine andere Interpretation von „Sie haben insgesamt 8 Blöcke ... um 8 Versuche in einer Reihe korrigieren“ ist , dass die Antwort Sein Gleichen gesucht 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...