En gardant une trace des choses, vous pouvez obtenir une formule exacte .
Soit 1/3 la probabilité de succès et le nombre de succès consécutifs que vous souhaitez compter. Ceux-ci sont corrigés pour le problème. Les valeurs variables sont , le nombre d'essais restant dans le bloc; et , le nombre de succès successifs déjà observés. Laissez la chance de finalement atteindre succès dans une rangée avant essais sont soit épuisés par écrit . Nous recherchons .k = 8 m j k m f p , k ( j , m ) f une / 3 , 8 (p=1/3k=8mjkmfp,k(j,m)f1/3,8(0,25)
Supposons que nous venons de voir notre succès affilée avec essais à faire. Le prochain essai est soit un succès, avec une probabilité - dans ce cas est augmenté à -; ou bien c'est un échec, avec probabilité - auquel cas est remis à . Dans les deux cas, diminue de . D'où m > 0 p j j + 1 1 - p j 0jthm>0pjj+11−pj01m1
fp,k(j,m)=pfp,k(j+1,m−1)+(1−p)fp,k(0,m−1).
Comme conditions de départ, nous avons les résultats évidents pour ( c'est -à- dire que nous avons déjà vu de suite) et pour ( c'est-à - dire qu'il n'y a pas assez d'essais pour obtenir de suite). Il est maintenant rapide et simple (en utilisant la programmation dynamique ou, parce que les paramètres de ce problème sont si petits, de récursivité) de calculerm ≥ 0 k f p , k ( j , m ) = 0 k - j > m kfp,k(k,m)=1m≥0kfp,k(j,m)=0k−j>mk
fp,8(0,25)=18p8−17p9−45p16+81p17−36p18.
Lorsque cela donne .80 897 / 43.046.721 ≈p=1/380897/43046721≈0.0018793
Un R
code relativement rapide pour simuler ceci est
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()))
Après 3 secondes de calcul, la sortie est . Bien que cela semble élevé, ce n'est que de 1,7 erreur standard. J'ai exécuté itérations , ce donne : seulement erreur standard de moins que prévu. (À titre de vérification, parce qu'une version antérieure de ce code un bogue subtil, j'ai également exécuté 400 000 itérations dans Mathematica, obtenant une estimation de .)100.00213 0,001867 0,3 0,00184751060.0018670.30.0018475
Ce résultat est inférieur au dixième de l'estimation de dans la question. Mais peut-être que je ne l'ai pas bien compris: une autre interprétation de "vous avez 8 blocs au total ... pour obtenir 8 essais corrects d'affilée" est que la réponse recherchée est égale à .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...