月刊「理系への数学」数学パズルにトドメをさす?! 今月のFlash
第8回
2010年 12月号
確率パズルにだまされるな!(その1)〜モンティ・ホールの罠〜
設定の違いによる確率の変化を理解する

目的

確率を求める様々な問題について、問題の設定の微妙な違いによってその確率が変化することを、疑似乱数を使ったシミュレーションにより実感して下さい。

操作方法

初期画面の左側の一覧から、試したい問題を選びクリックします。(マウスを合わせると右上欄に問題文が表示されます。)

選ばれた問題の設定での試行は、右下のフレーム内で行われます。試行の進行を1回ずつ手動で行う場合は再生ボタンを、自動的に繰り返し行う場合は早送りボタンをクリックします。手動進行/早送りを、途中で切り替えることもできます。試行結果は随時左側の表に反映されます。

試行時の操作詳細

再生ボタン(手動進行)

手動進行を開始します。手動進行の各回の中での操作はフレーム内に表示されるボタンで行い、各回が終了して次の回に進む時にはまた再生ボタンを使用します。

早送りボタン(自動進行)

停止中、もしくは手動進行中にクリックすると、そこから自動進行に切り替わります。自動進行では、試行回数が1000の倍数になるまで自動的に試行を繰り返します。(高速で画面が変化するため、目の保護のため自動進行中は画面にフィルターがかかります。)

自動進行においては、「あなた」が選択する場面でもその選択は疑似乱数にゆだねられます。今回用意した問題では、選択を促す場面で確率を左右できるような情報は与えられないため、手動進行と自動進行で結果の傾向が変わることはありません。

ポーズボタン

自動進行中にポーズボタンをクリックすると、手動進行に切り替わります。

終了ボタン(メニューへ)

クリックすると、試行を中止し、最初の選択画面に戻ります。その時点で試行結果は失われますのでご注意下さい。

条件付き確率の問題の試行について

用意された各問題は、モンティ・ホール問題のケース1を除き、いずれも「Aという条件のもとでのBの確率」という条件付き確率を求める問題となっています。試行はA・Bに関わる確率的分岐を疑似乱数で再現して行うため、当然「Aとならないケース」も発生します。ここでは、試行を繰り返しながら、試行全体の回数N、そのうちAとなった回数n(A)、Aとなった上でさらにBとなった回数n(A∩B)をそれぞれカウントし、試行回数が増えるにつれ、n(A∩B)/n(A)が条件付き確率PA(B)に近い値となっていくことを観察します。

なお、あくまでもランダムな試行であるため、試行回数が少ないとn(A∩B)/n(A)とPA(B)には大きな乖離が発生する場合があります。特に、「火曜日の男の子の問題」のようなP(A)やP(A∩B)が小さい値となる問題では、Nの値はそれなりに大きくても、n(A∩B)やn(A)が大きくならないとシミュレーションの精度は上がっていきません。「火曜日の男の子の問題」のケース1(PA(B)=13/27=0.48148)とケース2(PA(B)=1/2=0.5)の差異が明確にあらわれるには、N=10000でも十分とは言えないかもしれません。

各問題について

モンティ・ホール問題

有名なモンティ・ホール問題の基本形はケース1です。ケース2は、司会者が箱を開けて見せる際に、当たりの箱を開けてしまう可能性があるのがポイントです。

3枚のカード

ケース0は、簡単な条件付き確率の練習問題です。ケース1〜ケース3は、Xの選んだカードの少なくとも片面が赤という事実をどうやってあなたが知ったかによって、両面とも赤である確率の判断が変わるところがミソです。ケース2・ケース3では「少なくとも片面が赤」であってもAに含まれない場合があることを確認して下さい。

2人の子供の性別

ケース2では、少なくとも1人は男の子であっても、Aに含まれない場合があります。

火曜日生まれの男の子

2010年に提示された有名問題に相当するのはケース1です。n(A)に含まれるケースでは2人の子供の性別と生まれた曜日の組合せとしてどのようなパターンがあるかを調べ、「火曜日生まれの」が付かない問題のケース1との違いを考えてみましょう。

補足

(1) 「2人の子供の性別」「火曜日生まれの男の子」のケース2について

「2人の子供の性別」のケース2で、Xの示す情報が「少なくとも1人は男の子です」「少なくとも1人は女の子です」の2通りしかないのはおかしいという趣旨のご指摘を頂きました。説明不足であったことをお詫びいたします。

このケースでは、問題文に「子供を2人持つ親が『子供のうち少なくとも1人は*の子である』という情報を示すという事象が子供の性別の組合せとは独立である」という設定があります。そこで、疑似乱数による試行においては、Xは必ず「子供のうち少なくとも1人は*の子である」という形式の情報を示すものとして(すなわち、そのような形式の情報を示す確率を1と見なして)試行を実施しています。もしそのような形式の情報を示す確率を1ではなくrとすると、P(A)とP(A∩B)はともにr倍となりますが、求める条件付き確率PA(B)には影響しません。

「火曜日生まれの男の子」のケース2についても同様に、Xは必ず「子供のうち少なくとも1人は*曜日生まれの*の子である」という形式の情報を示すものとして試行を行っています。

(2) 疑似乱数によるシミュレーションを行う意味について

このような問題における「確率」は、与えられた条件を整理することで机上で求めるべきものであって、疑似乱数でシミュレーションしたところでそれはその結果をなぞっているだけなので、何の検証にもならない、という趣旨のご指摘を頂きました。その点については当方も全く同じ考えであり、異存はございません。間違っても、「実際にシミュレーションしてみて近い値になるから、理論値の正しさが検証された」というような誤解をされないようこちらからもお願いします。疑似乱数による試行は、単に、理論値はどういう考え方で求めたものかを具体的に示すための(もしくは理解するための)「模型」だと考えて下さい。

このような「模型」を提供するのは、例えば「『モンティ・ホール問題』のケース2では、司会者が当たりの箱を開けてしまうケースが存在すること」や、「『2人の子供の性別』の問題のケース2では、Xに男の子が1人いても『少なくとも1人は男の子です』とは言わないケースが存在すること」を具体的に疑似体験することで、各設定の違いについてのより具体的なイメージを持っていただきたい、というのが主たる目的です。したがって、まずは早送りではなく手動進行でそこで何が行われているかを確認してみて下さい。シミュレーション結果については、むしろ「1000回も疑似乱数で試行を行っても、思ったより理論値から大きく離れることもあるのだな」というあたりの感覚を経験していただくことの方が意味があると思います。

2010.11.26 斉藤 記