﻿rm(list = ls())  # ワークスペースをクリア
n <- 100000  # 試行回数
X <- numeric(n)  # 表が出る50円硬貨の合計金額を格納するベクトル
Y <- numeric(n)  # 表が出る100円硬貨の合計金額を格納するベクトル
set.seed(1)  # 乱数のシード値を固定
for (i in 1:n) {
  coin_50 <- sample(c(0, 1), 2, TRUE)  # 50円硬貨2枚を同時に投げた結果
  X[i] <- sum(coin_50) * 50  # 表が出た50円硬貨の合計金額
  coin_100 <- sample(c(0, 1), 3, TRUE)  # 100円硬貨3枚を同時に投げた結果
  Y[i] <- sum(coin_100) * 100  # 表が出た100円硬貨の合計金額
}
Z <- X + Y  # 表が出た硬貨の合計金額のベクトルを作成
# 期待値E(Z)を表示 (※モンテカルロ法で求めた値，理論値の順)
mean(Z) ; 200
# 標準偏差σ(Z)を表示 (※モンテカルロ法で求めた値，理論値の順)
sqrt(((n - 1) / n) * var(Z)) ; 25 * sqrt(14)