分からない問題はここに書いてね460at MATH
分からない問題はここに書いてね460 - 暇つぶし2ch748:132人目の素数さん
20/06/26 11:50:28 k8AOi6FK.net
>>708
"
(1)「犬」と書かれたカードと「猫」と書かれたカードがたくさんある山を用意する。
山から1枚カードを引くとき、「犬」が出る確率も「猫」が出る確率も等しく1/2とする。
"
cards=rep(0:1,1e4) # 0:猫 1:犬のカードが1万枚

"
(2) A君は山から2枚のカードを引き、その2枚を手元でシャッフルし、2枚の中から1枚を表にする。
"
sim <- function(){
drawn=sample(cards,2) # 2枚のカードを引き
index=sample(2,1) # 2枚の中から1枚を
turned=drawn[index] # 表のカード
hidden=drawn[-index] # 裏のままのカード
"
(3) 表にしたカードが「猫」なら、2枚を山に戻して(2)に戻る。
表にしたカードが「犬」なら、もう1枚のカードを表にして、そこに書いてある文字を紙にメモする。
そして、2枚を山に戻して(2)に戻る。
"
if(turned==0){ # 表のカードが猫0なら
res=NA # 返り値にNA(Not Available)を
}else{   # そうでない(表のカードが犬1なら
res=hidden # 裏のままのカードの記載を返り値に
}
return(res)
}

"この作業を延々と繰り返してメモに書かれたデータを蓄積していく。
メモが発生した回数 を N として、N 回分のデータのうち「犬」が書かれた回数を k とすれば、
k/N は N が大きければ大きいほど 1/3 に近づく。
"
M=replicate(1e5,sim()) # 10万回繰り返して
N=sum(!is.na(M))    # 返り値がNAでない(=メモが取られた)回数をNとする
k=sum(M,na.rm=TRUE)  # 返り値が犬1である個数を返す
k/N


実行結果は、

> k/N
[1] 0.4981091


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch