受 Peter Donnelly 在TED上的演讲的启发,他在演讲中讨论了某种模式在一系列抛硬币中出现需要多长时间,我在 R 中创建了以下脚本。给定两个模式“hth”和“htt”,它计算在您达到其中一种模式之前平均需要多长时间(即抛硬币次数)。
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)
汇总统计如下,
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
演讲中解释说,两种模式的平均抛硬币次数会有所不同;从我的模拟中可以看出。尽管看了几次谈话,我仍然不太明白为什么会这样。我知道'hth'会重叠,直觉上我认为你会比'htt'更早地击中'hth',但事实并非如此。如果有人可以向我解释这一点,我将不胜感激。