Al realizar un seguimiento de las cosas, puede obtener una fórmula exacta .
Deje que la probabilidad de éxito y k = 8 el número de éxitos en una fila que desea contar. Estos están arreglados para el problema. Los valores variables son m , el número de intentos restantes en el bloque; y j , el número de éxitos sucesivos ya observados. Deje que la posibilidad de lograr eventualmente k éxitos seguidos antes de que se agoten las pruebas m se escriba f p , k ( j , m ) . Buscamos f 1 / 3 , 8 (p=1/3k=8mjkmfp,k(j,m)f1/3,8(0,25).
Suppose we have just seen our jth success in a row with m>0 trials to go. The next trial is either a success, with probability p--in which case j is increased to j+1--; or else it is a failure, with probability 1−p--in which case j is reset to 0. In either case, m decreases by 1. Whence
fp,k(j,m)=pfp,k(j+1,m−1)+(1−p)fp,k(0,m−1).
Como condiciones iniciales tenemos los resultados obvios para m ≥ 0 ( es decir , ya hemos visto k en una fila) y f p , k ( j , m ) = 0 para k - j > m ( es decir , no quedan suficientes pruebas para obtenerfp,k(k,m)=1m≥0kfp,k(j,m)=0k−j>mken una fila). Ahora es rápido y sencillo (usando programación dinámica o, debido a que los parámetros de este problema son muy pequeños, recursividad) para calcular
fp,8(0,25)=18p8−17p9−45p16+81p17−36p18.
Cuando esta rendimientos 80.897 mil / 43.046721 millones ≈ 0,0018793 .p=1/380897/43046721≈0.0018793
El R
código relativamente rápido para simular esto es
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()))
After 3 seconds of calculation, the output is 0.00213. Although this looks high, it's only 1.7 standard errors off. I ran another 106 iterations, yielding 0.001867: only 0.3 standard errors less than expected. (As a double-check, because an earlier version of this code had a subtle bug, I also ran 400,000 iterations in Mathematica, obtaining an estimate of 0.0018475.)
Este resultado es de menos de un décimo de la estimación de en la pregunta. Pero tal vez no he entendido plenamente: otra interpretación de "usted tiene 8 bloques totales ... para corregir 8 ensayos en una fila" es que el ser iguales respuesta buscó 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...