﻿rm(list = ls())  # ワークスペースをクリア
n <- 200000  # 生産する製品の個数 (試行回数)
n_a <- 0  # 機械Aで作られる不良品の個数
n_b <- 0  # 機械Bで作られる不良品の個数
n_c <- 0  # 機械Cで作られる不良品の個数
set.seed(1)  # 乱数のシード値を固定
for (i in 1:n) {
　# 製品を製造する機械をA, B, Cから選択
  m <- sample(c("A","B","C"), 1, TRUE, c(20,35,45))  
  if (m == "A") {
    prod <- sample(c(0,1), 1, TRUE, c(94,6))  # 0が正規品, 1が不良品
    if (prod == 1) {
      n_a <- n_a + 1  # 機械Aで作られる不良品の個数をカウント
    }
  } else if (m == "B") {
    prod <- sample(c(0,1), 1, TRUE, c(96,4))  # 0が正規品, 1が不良品
    if (prod == 1) {
      n_b <- n_b + 1  # 機械Bで作られる不良品の個数をカウント
    }
  } else {
    prod <- sample(c(0,1), 1, TRUE, c(98,2))  # 0が正規品, 1が不良品
    if (prod == 1) {
      n_c <- n_c + 1  # 機械Cで作られる不良品の個数をカウント
    }
  }
}
# 不良品が機械Aで作られた確率を表示
n_a / (n_a + n_b + n_c)  # モンテカルロ法
12 / 35  # 参考：理論値