# http://mathtrain.jp/monty
# 方法3:プログラミングで実験してみる
# 乱数を使って実際にモンティ・ホール問題を何回も試行してみる
F=function(){
n=100
f=function(){
d=integer(3)
w=sample(1:3,1)
d[w]=1
return(d)
}

g=function(x) replicate(x,f())
D=g(n)
C=f()
change=sum(apply(D-C,2,var))/n
no_change=(n-sum(apply(D-C,2,var)))/n
res=c(change,no_change)
return(res)
}

N=1000
Res=replicate(N,F())
par(mfrow=c(2,1))
hist(Res[1,],xlab="P(winner)",ylab="",main="Change",col="gray")
hist(Res[2,],xlab="P(Winner)",ylab="",main="No Change",col="gray")
summary(Res[1,])
summary(Res[2,])
#http://i.imgur.com/XmQ82Lc.jpg