Zainspirowany przemową Petera Donnelly'ego na TED , w której omawia on, jak długo zajmie pojawienie się określonego wzoru w serii rzutów monetą, stworzyłem następujący skrypt w R. Biorąc pod uwagę dwa wzory „hth” i „htt”, to oblicza, ile czasu zajmuje średnio (tj. ile rzutów monetą), zanim trafisz jeden z tych wzorów.
coin <- c('h','t')
hit <- function(seq) {
miss <- TRUE
fail <- 3
trp <- sample(coin,3,replace=T)
while (miss) {
if (all(seq == trp)) {
miss <- FALSE
}
else {
trp <- c(trp[2],trp[3],sample(coin,1,T))
fail <- fail + 1
}
}
return(fail)
}
n <- 5000
trials <- data.frame("hth"=rep(NA,n),"htt"=rep(NA,n))
hth <- c('h','t','h')
htt <- c('h','t','t')
set.seed(4321)
for (i in 1:n) {
trials[i,] <- c(hit(hth),hit(htt))
}
summary(trials)
Statystyki podsumowujące są następujące,
hth htt
Min. : 3.00 Min. : 3.000
1st Qu.: 4.00 1st Qu.: 5.000
Median : 8.00 Median : 7.000
Mean :10.08 Mean : 8.014
3rd Qu.:13.00 3rd Qu.:10.000
Max. :70.00 Max. :42.000
W wykładzie wyjaśniono, że średnia liczba rzutów monetą byłaby różna dla obu wzorów; jak widać z mojej symulacji. Mimo kilkukrotnego oglądania rozmowy wciąż nie rozumiem, dlaczego tak się dzieje. Rozumiem, że „hth” nakłada się na siebie i intuicyjnie sądzę, że trafiłbyś „hth” wcześniej niż „htt”, ale tak nie jest. Byłbym bardzo wdzięczny, gdyby ktoś mi to wyjaśnił.