Bir şeyleri takip ederek tam bir formül elde edebilirsiniz .
Let başarı ve olasılık olması k = 8 saymak istediğiniz bir satırda başarıların sayısını olun. Bunlar sorun için düzeltildi. Değişken değerler m , blokta kalan deneme sayısı; ve j , daha önce gözlemlenen ardışık başarıların sayısı. M denemeleri tükenmeden nihayetinde üst üste k başarılarına ulaşma şansı f p , k ( j , m ) olarak yazılmalıdır . Biz aramaya f 1 / 3 , 8 (p = 1 / 3k = 8mjkmfp , k( j , m ) .f1 / 3 , 8( 0 , 25 )
Biz sadece bizim gördüğümüz varsayalım ile üst üste başarı m > 0 denemeler gitmek. Bir sonraki deneme ya bir başarıdır, p - in olasılığı j'dir; bu durumda j , j + 1 - 'e yükseltilir ; ya da bu bir başarısızlıktır, olasılık 1 - p --'de, bu durumda j , 0'a sıfırlanır . Her iki durumda da, m 1 azalır . Neredenjincim > 0pjj+11−pj0m1
fp,k(j,m)=pfp,k(j+1,m−1)+(1−p)fp,k(0,m−1).
Başlangıç koşullarına olarak, belirgin sonuçlar için m ≥ 0 ( yani , daha önce gördüğümüz k arka arkaya) ve f p , k ( j , m ), = 0 için k - j > m ( yani , k elde etmek için yeterli deneme yokfp,k(k,m)=1m≥0kfp,k(j,m)=0k−j>mküst üste). Şimdi hızlı ve anlaşılır (dinamik programlama kullanarak veya bu sorunun parametreleri çok küçük olduğu için, özyineleme)
fp,8(0,25)=18p8−17p9−45p16+81p17−36p18.
Zaman , bu verimler 80897 / 43.046.721 ≈ 0,0018793 .p=1/380897/43046721≈0.0018793
R
Bunu simüle etmek için nispeten hızlı kod
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 saniyelik hesaplamadan sonra çıktı . Bu yüksek görünse de, sadece 1.7 standart hata kapalı. Başka bir 10 6 yineleme çalıştırdım ve 0,001867 verdi : beklenenden sadece 0,3 standart hata daha az. (Bir çift kontrol olarak, bu kodun önceki bir sürümünde ince bir hata olduğu için, Mathematica'da 400.000 yineleme çalıştırdım ve tahmini 0.0018475 elde ettim .)0.002131060.0018670.30.0018475
Bu sonuç, daha az onda biri tahmin daha söz konusu. Ama belki ben tam olarak anlaşılmış değil: "Eğer 8 denemeler arka arkaya düzeltmek almak için 8 toplam bloklar var ..." başka yorumudur cevap varlık eşittir aranan o 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...