Слідкуючи за речами, ви можете отримати точну формулу .
Нехай - ймовірність успіху, а - кількість успіхів у ряді, який потрібно підрахувати. Вони виправлені для проблеми. Змінні значення , кількість випробувань, залишених у блоці; і - кількість послідовних успіхів, що вже спостерігаються. Нехай шанс в кінцевому підсумку досягти успіхів підряд до вичерпання випробувань записаний . Шукаємо .до = 8 м J до м е р , до ( J , т ) е 1 / 3 , 8 ( 0 , 25 )р = 1 / 3k = 8мjкмfр , к( j , m )f1 / 3 , 8( 0 , 25 )
Припустимо, ми щойно бачили наш успіх поспіль з випробуваннями. Наступне випробування або є успішним, з ймовірністю --в тому випадку збільшується до -; інакше це збій, з ймовірністю --в тому випадку скидається до . В будь-якому випадку зменшується на . Звідси m > 0 p j j + 1 1 - p j 0 m 1jгоm > 0pjj + 11 - сj0м1
fр , к( j , m ) = p fр , к( j + 1 , m - 1 ) + ( 1 - p ) fр , к(0,m−1).
Як початкові умови ми маємо очевидні результати для ( тобто ми вже бачили підряд) і для ( тобто не вистачає випробувань, щоб отримати підряд). Тепер обчислити це швидко та просто (використовуючи динамічне програмування або, оскільки параметри цієї проблеми такі маленькі, рекурсія)m ≥ 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.
Коли це дає .80897 / +43046721 ≈ 0,0018793p=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 стандартних помилок. Я провів ще ітерацій, даючи : лише на стандартних помилок менше, ніж очікувалося. (В якості подвійної перевірки, оскільки попередня версія цього коду мала тонку помилку, я також запустив 400 000 ітерацій в Mathematica, отримавши оцінку .)10 6 0,001867 0,3 0,00184750.002131060.0018670.30,0018475
Цей результат становить менше однієї десятої частини оцінки у питанні. Але, мабуть, я не до кінця зрозумів це: інше тлумачення "у вас є 8 загальних блоків ... щоб отримати 8 випробувань правильними підряд", полягає в тому, що шукана відповідь дорівнює .1 - ( 1 - е 1 / 3 , 8 ( 0 , 25 ) ) 8 ) = 0.0149358 ...1 - ( 1 - ( 1 / 3 )8)136≈ 0,02051 - ( 1 - ф1 / 3 , 8( 0 , 25 ) )8) = 0,0149358 ...