﻿rm(list = ls())  # ワークスペースをクリア
n <- 200000  # 試行回数
X <- numeric(n)  # 行われた試合数を格納するベクトル
set.seed(1)  # 乱数のシード値を固定
for (i in 1:n) {
  winner <- rep("NA", 5)  # j回目の試合の勝者をwinner[j]に格納
  for (j in 1:5) {
    winner[j] <- sample(c("A", "B"), 1, TRUE, c(1/4, 3/4))
    # AかBのどちらかが先に3勝したら試合終了
    if ((j >= 3) && (sum(winner=="A")==3 || sum(winner=="B")==3)) {  
      X[i] <- j  # i回目の試行で行われた試合数jを格納
      break
    }
  }
}
# 期待値E(1/(X-2))を表示
mean(1 / (X - 2))  # モンテカルロ法
175 / 256  # 参考：理論値