﻿# パッケージがインストール済なら次の行は不要
# import Pkg; Pkg.add("Distributions")
import Random  # 乱数を扱うためのモジュールをインポート
using Distributions
n = 100000  # 試行回数
triangle_areas = zeros(n)  # 三角形OABの面積を格納する配列
Random.seed!(1)  # 乱数のシード値を固定
for i in 1:n
    arg_a = rand(Uniform(0, 2 * pi))  # 線分OAとx軸とのなす角
    arg_b = rand(Uniform(0, 2 * pi))  # 線分OBとx軸とのなす角
    # 三角形OABの面積 = |sin(argA - argB)| / 2
    triangle_areas[i] = abs(sin(arg_a - arg_b)) / 2
end
# 三角形OABの面積の期待値を表示
println(mean(triangle_areas))  # モンテカルロ法
println(1 / pi)  # 参考：理論値