﻿# パッケージがインストール済なら次の行は不要
# import Pkg; Pkg.add("[Distributions, Statistics]") 
import Random  # 乱数を扱うためのモジュールをインポート
using Distributions, Statistics
n = 100000  # 試行回数
Random.seed!(1)  # 乱数のシード値を固定
# 多項分布に従う乱数をn個生成
mX = rand(Multinomial(10, fill(1/6, 6)), n)
X = mX[6, :]  # 6の目が出る回数
Y = mX[5, :] + mX[6, :]  # 5または6の目が出る回数
Z = mX[1, :] + mX[3, :] + mX[5, :]  # 奇数の目が出る回数
# E(Y)を表示
println(mean(Y))  # モンテカルロ法
println(10 / 3)  # 参考：理論値
# V(Y)を表示
println(var(Y))  # モンテカルロ法
println(20 / 9)  # 参考：理論値
# cov(X, Z)を表示
println(cov(X, Z))  # モンテカルロ法
println((5 / 6) * (-1))  # 理論値
# cov(X, Y)を表示
println(cov(X, Y))  # モンテカルロ法
println(10 / 9)  # 参考：理論値