﻿rm(list = ls())  # ワークスペースをクリア
n <- 100000  # 試行回数
triangleAreas <- numeric(n)  # 三角形ABQの面積を格納するベクトル
set.seed(1)  # 乱数のシード値を固定
for (i in 1:n) {
  omega <- runif(1, 0, 4)  # U(0,4)に従う乱数を1個生成
  if (omega <= 1) {  # 点Qが辺AB上にあるとき
    triangleAreas[i] <- 0.0 
  } else if (omega <= 2) {  # 点Qが辺BC上にあるとき
    triangleAreas[i] <- ((omega - 1) / 2)
  } else if (omega <= 3) {  # 点Qが辺CD上にあるとき
    triangleAreas[i] <- 0.5
  } else if (omega <= 4) {  # 点Qが辺DA上にあるとき
    triangleAreas[i] <- ((4 - omega) / 2)
  }
}
# 三角形ABQの面積の期待値を表示
mean(triangleAreas)  # モンテカルロ法
1/4  # 参考：理論値