﻿rm(list = ls())  # ワークスペースをクリア
n <- 100000  # 試行回数
triangleAreas <- numeric(n)  # 三角形OABの面積を格納するベクトル
set.seed(1)  # 乱数のシード値を固定
for (i in 1:n) {
  argA <- runif(1, 0, 2*pi)  # 線分OAとx軸とのなす角
  argB <- runif(1, 0, 2*pi)  # 線分OBとx軸とのなす角
  # 三角形OABの面積 = |sin(argA - argB)| / 2
  triangleAreas[i] <- abs(sin(argA - argB)) / 2  
}
# 三角形OABの面積の期待値を表示
mean(triangleAreas)  # モンテカルロ法
1 / pi  # 参考：理論値