﻿rm(list = ls())  # ワークスペースをクリア
n <- 100000  # 試行回数
# n回の試行結果(※Aが勝てば1，Bが勝てば2，Cが勝てば3)を格納するベクトル
winner_flag <- integer(n)
set.seed(1)  # 乱数のシード値を固定
for (i in 1:n) {
  x <- 0  # さいころの目
  y <- 0  # 勝者の情報 (※Aが勝てば1，Bが勝てば2，Cが勝てば3)  
  while (y == 0) {
    x <- sample(1:6, 1)  # Aがさいころを投げ，出た目をxに代入
    if (x == 6) {  # Aが最初に6の目を出す場合
      y <- 1  # Aが勝者
      break   # 勝負を終える
    }
    x <- sample(1:6, 1)  # Bがさいころを投げ，出た目をxに代入
    if (x == 6) {  # Bが最初に6の目を出す場合
      y <- 2  # Bが勝者
      break   # 勝負を終える
    }
    x <- sample(1:6, 1)  # Cがさいころを投げ，出た目をxに代入
    if (x == 6) {  # Cが最初に6の目を出す場合
      y <- 3  # Cが勝者
      break   # 勝負を終える
    }
  }
  winner_flag[i] <- y  # i回目の試行における勝者を記録
}
# Aが勝者となる確率を表示 (※モンテカルロ法で求めた値，理論値の順)
sum(winner_flag == 1) / n ; 36 / 91
# Bが勝者となる確率を表示 (※モンテカルロ法で求めた値，理論値の順)
sum(winner_flag == 2) / n ; 30 / 91
# Cが勝者となる確率を表示 (※モンテカルロ法で求めた値，理論値の順)
sum(winner_flag == 3) / n ; 25 / 91