4.5 도박꾼의 파산

여기서부터 4개의 문제에 대한 이론적인 풀이는 허명회의 ‘수리통계학 강의 (2001, 아카데미)’ 3장에 잘 나와 있다. 이 책에서는 R로 simulation하여 푸는 방법을 보여줄 것이다.

도박꾼이 카지노에서 게임을 하는데, 이기면 1달러를 받고, 지면 1달러를 주어야 한다. 도박꾼이 한 번 게임할 때 이길 확률을 p라 하자. 도박꾼이 5달러를 가지고 시작하는데, 10달러가 되면 더 이상 게임을 하지 않고, 카지노를 나온다고 하자. 0달러가 되어도 파산이어서 더 이상 게임을 할 수 없다. 만약 p가 18/38 (p는 0.5보다 작아야 카지노가 파산하지 않는다)이라면, 평균적으로 몇 번의 게임을 할 수 있고, 파산할 확률은 얼마인지 계산하시오.

이것을 R에서 simulation으로 풀자면 다음과 같다.

p = 18/38 # success probability
m0 = 5    # initial amount
m1 = 10   # target amount
N = 1000  # number of simulation
Res = data.frame(n=rep(NA, N), Result=rep(NA, N))

for (i in 1:N) {
    cM = m0 # current amount
    cT = 0  # trial no

    while((cM > 0) & (cM < m1)) {
        cM = ifelse(runif(1) < p, cM + 1, cM - 1)
        cT = cT + 1
    }

    Res[i, "n"] = cT
    Res[i, "Result"] = ifelse(cM == 0, "Bankrupt", "Earn")
}

mean(Res[, "n"])
[1] 24.472
sum(Res[, "Result"] == "Bankrupt")/N
[1] 0.589
hist(Res[,"n"], breaks=1:max(Res[, "n"]), xlab="Play count", main="")
Histogram of play count

Figure 4.8: Histogram of play count

이 문제의 이론적인 답은 평균 24.5회이며, 파산 확률은 0.629이다.