stylesheet

2014年1月16日木曜日

モンティ・ホール問題を確かめる

モンティ・ホール問題 - wikipedia

「プレイヤーの前に3つのドアがあって、1つのドアの後ろには景品の新車が、2つのドアの後ろにはヤギ(はずれを意味する)がいる。プレイヤーは新車のドアを当てると新車がもらえる。プレイヤーが1つのドアを選択した後、モンティが残りのドアのうちヤギがいるドアを開けてヤギを見せる。

ここでプレイヤーは最初に選んだドアを、残っている開けられていないドアに変更してもよいと言われる。プレイヤーはドアを変更すべきだろうか?」

解説

  1. 3つの中の1つを選ぶ。
  2. 残りの2つのうち、外れをオープンする。
  3. 最初に選んだドアともうひとつのドアで当たる確率は同じか。

ひとつの考え

ドアがひとつ空いた時点で残りのドアは2つになる。どちらを選んでも可能性は 1/2 である。最初に選んだものを変えようが変えまいが 1/2 の確率に違いはないように見える。選択肢が2つになった時点で、どちらかを選ぶ確率は 50% である。その片方を既に選んでいるとは、2つになってからそれを選んだのだと考えても同じと思える。よって当たる確率は 50% のはずだ。

もうひとつの考え

最初に選んだドアが当たる割合は 1/3 である。残りのドアが当たる割合は 2/3 である。ドアの一枚を開ける事によって残りのドアは最初に選んだドアが当たりでない限り必ず当たる。これは最初に選ばなかった2つのドアのどちらを選んでも当たりにしてもらった (二枚のドアを両方とも選んだ) のと同等である。よって選び直したドアが当たる確率は 2/3 のままである。

3 つの時

a が当たる確率 1/3, a 以外が当たる確率 2/3

2 つになった時、選び直さない場合

a が当たる確率 1/3, a 以外が当たる確率 2/3

選び直した場合

選び直すので a を選んでいた場合に次も a を選ぶ確率は 1/2 になる。よって a を選んだ時に当たる確率は 1/3 * 1/2(aが当たる確率) + 2/3 * 1/2(a以外が外れる確率)となり、a以外を選んで当たる確率は、 1/3 * 1/2(aが外れる確率) + 2/3 * 1/2(a以外が当たる確率)と同じになる。

当たる確率を 1/2 にするためには、2つになった時点でもう一度選び直す必要がある。

つまり

つまり、2つになった時点での選択は3通りある。
・選択を変えない
・もう片方に変える
・どちらかをランダムに決める。

ひとつのドアを開ける所が手品だ。この行為によって2つのどちらかを選ぶと勘違いする。しかし実際は、残り二枚の当たる確率を一枚に集約したに過ぎず、残り二枚のどちらを選んでも当たるようにしただけである。この問題は見かけ上はどうであれ、最初に選んだドアと残り2つのドアのどちらが当たる確率が高いかを問うているのだ。

実証(Scriptによる確率計算)


ドア1ドア2ドア3
当たりのドア(total)
最初に選んだドア(prob1)
開いたドア(prob2)
最初のまま(prob31)
反対を選ぶ(prob32)
 
//モンティ・ホール
function MontyHall () {
 //当たりはどこだ?
 var a = Math.random ()*3 | 0;
 total[a]++;

 //最初のドアを選ぶ。
 var b = Math.random ()*3 | 0;
 prob1[b]++;

 //b以外のうち、ひとつをオープンする。
 //両方外れの場合は、ランダムに決める。
 var c = 0;
 switch (a/*当りのドア*/)
 {
 case 0:
  switch (b/*選んだドア*/)
  {
  case 0: c = ((Math.random()*2 | 0)<1) ? 1 : 2; break;
  case 1: c = 2; break;
  case 2: c = 1; break;
  }
  break;
 case 1:
  switch (b)
  {
  case 0: c = 2; break;
  case 1: c = ((Math.random()*2 | 0)<1) ? 0 : 2; break;
  case 2: c = 0; break;
  }
  break;
 case 2:
  switch (b)
  {
  case 0: c = 1; break;
  case 1: c = 0; break;
  case 2: c =  ((Math.random()*2 | 0)<1) ? 0 :1; break;
  }
  break;
 }
 prob2[c]++;
 //外れを開くという司会者の行為が確率に何も影響を与えていない。

 //そのままで当たりか(b)。
 if( a == b ) prob31[a]++;
 //選び直したら当たりか(a+c)。
 else prob32[a]++;
}
もっとよい解説
Google + モンティ・ホール問題

0 件のコメント:

コメントを投稿