Q1: 一个均匀硬币不断抛啊抛,假如抛个100次,那么连续抛出同一面的次数,这个次数最多是多少?
coin.len = function(v) {
x = rbinom(1:v, 1, 0.5)
len = 1
for (i in 1:v)
{
for (j in 1:(v-i+1))
{
if ((sum(x[i:(i+j-1)]) == 0) | (sum(x[i:(i+j-1)]) == j))
{
len = max(len, j)
}
}
}
return(len)
}
set.seed(1024)
mean(len <- replicate(1000, coin.len(1000))
# [1] 10.288
Q2: 一个均匀硬币不断抛啊抛,一直抛到出现HTT(正反反)和HTH(正反正),哪个需要抛的次数多?
coin.seq = function(v) {
x = NULL
n = 0
while (!identical(x, v)) {
x = append(x[length(x) - 1:0], rbinom(1, 1, 0.5))
n = n + 1
}
n
}
set.seed(1024)
mean(htt <- replicate(1e+05, coin.seq(c(1, 0, 0))))
# [1] 8.003
mean(hth <- replicate(1e+05, coin.seq(c(1, 0, 1))))
# [1] 10.006