4.6 야구카드 모으기
총 100종류의 서로 다른 야구카드가 있다고 하자. 어떤 사람이 한 장 한 장을 무작위로 구매할 때 평균적으로 총 몇 장을 구매해야 100종류의 카드를 모두 모으겠는가 하는 문제이다.
= 100 # kinds of cards
k = 1000 # number of simulation
N = rep(NA, N)
Res
= Sys.time()
t1 for (i in 1:N) {
= rep(0, k) # 0: Do not have, 1: Have
nCard = 0 # number of trial
nT while (sum(nCard) < k) {
sample(k, 1)] = 1
nCard[= nT + 1
nT
}= nT
Res[i]
}Sys.time() - t1
Time difference of 1.578759 secs
mean(Res)
[1] 524.647
summary(Res)
Min. 1st Qu. Median Mean 3rd Qu. Max.
297.0 432.0 504.0 524.6 594.2 1202.0
hist(Res, breaks=1:max(Res), xlab="Purchase count")
Figure 4.9: Histogram of purchases
이 문제의 이론적인 답은 약 518.73775 이다.