おめえらニセ札の作り方教えれ

爆笑。(via びぃさんの日記)

第二種モンティホール問題

この文は

この文はhttp://d.hatena.ne.jp/hoshikuzu/20050307#D20050307MONTYHALLの続きです。

第二種モンティホール問題とは何か

第二種モンティホール問題は私の造語です。従来様々な形で考察されてきたモンティホール問題を第一種モンティホール問題と勝手に名付けています。第二種モンティホール問題について述べる準備がまだ出来ていませんので最初に第一種モンティホール問題について述べさせて頂きます。

モンティホールの問題については以下を参照してください。

上から引用させて頂きます。

モンティ・ホールの問題

モンティ・ホールの問題とは、テレビのバライエティ番組での次の問題をいう。

回答者である番組参加者は、3つの扉の一つを選ぶ。その背後には、当たりである商品とはずれである、たとえばアヒルのおもちゃが隠されている。

回答者が扉Aを選んだ。モンティは、それを伏せたまま、第二の扉、たとえば扉Cを開く。そこには、アヒルのおもちゃがあった。そこで、モンティは回答者に、もう一度、選択し直すことを提案する。回答者は、扉Bに選択し直すことが有利であるか。

この問題は実在したテレビショーが起源だそうです。当たりは豪華な車。ハズレは羊だそうです。羊はもらえません。

私は最初この問題を見たときに断固として、選択しなおそうが最初の選択を固執しようがどちらが有利不利とは言えない、そのように考えました。モンティはハズレをひとつ客に提示します。当たりは残りのふたつのうちどちらか一方であり等確率であるように見えます。当時の多くの人々もそのように考えていたらしいです。おそらくこのショーの企画者も。ところが、ある女性が自分のコラムで選択しなおした方が有利であり期待される確率は2/3だと述べたのです。この発言に当時の人は「馬鹿こくでねぇ」とか喧々囂々になって有名になったらしいのですね。中にはプロの数学者もいてコラムを書いた女性に対して「素人はすっこんでろ」みたいなことを言ったとか言わないとか。事実は、選択しなおしたほうが有利なのです。これは直感に反しますので、モンティホールの問題、あるいはモンティホールのディレンマと名付けられて有名になりました。上で引用させて頂いた文書の筆者も最初は私と同様断固として等確率であるという注釈をつけて書物を出版してしまったらしいのです。そしてそのことの訂正を上記文書で行っているのですね。

第一種モンティホール問題を以下のように表現してみます。やや冗長ですが、思い込みによる思考の省略はしたくありませんので「物理的に」どうなのかを主眼として記述しています。例えば、上の引用では客が選んだものをA、モンティが客に提示するハズレをCなどと記述していますがこれは大胆な省略です。まずA,B,Cがあって、客はその中からFを選ぶ、モンティははずれMを選ぶ、という具合に省略なく記述しています。また、モンティや客がどの時点でどのような情報を知りえるのかということも問題の本質をゆがめることなく表現してみました。以下第一種モンティホール問題です。

  1. A、B、Cの中に当たりXがひとつある。客もモンティもXがどれであるか最初は知らない。ABCが当たる確率は等しく1/3とする。
  2. 客はA、B、Cの中からひとつ、Fを選択する。残りをG、Hとする。
  3. モンティはG、Hを見ることが出来る。この中に当たりXがあるかもしれないし、ないかもしれない。いずれにせよ、G、Hの中には少なくともひとつのハズレがあることをモンティは知ることが出来る
  4. モンティはG、Hの中からハズレを1個選択する。これをMとする。残りをNとする。但し、G、Hがハズレの場合には無作為に選ぶものとする。
  5. モンティは客に情報を提示する。情報とは「Mはハズレである」という事実。
  6. 客は最初に選んだFと、Nのどちらか一方に当たりXがあることを知る。
  7. Nを選択したほうが当たりXを引く確率が高く、2/3である。裏返して言えばFを選択して当たりXを引く確率は1/3である。

第一種モンティホール問題をどのように考えるか

確率についての考察はインターネット上でも検索すればかなりの文献を発見することが出来ます。私が解説するよりも有益ですのでどうか調べて見てください。ベイズ推定をきっちり使うべきなのでしょうけれども。

色々な解説を読んでもサッパリ腑に落ちなかった私はとあるモンテカルロ法によるシミュレータを見て驚きました。こちらも色々インターネット上で体験することが出来ます。そのアンサンブルをこの目で見てはじめて私は自分の非を悟ったわけです。あぁ等確率ではないのねぇ、と。

ただし、多くのシミュレーションには思考の省略が導入されていまして、そこになにかしらの落ち度があるやも知れず気持ち悪かったことも事実です。私は自分が納得できる簡単なシミュレータを自作することとしました。このシミュレータは上で私が詳述した第一種モンティホール問題の表現によるものです。JavaScriptでこの表現を直接書き下したことになります。できればソースをもご検討くださいませ。

シミュレータそのものは以下にあります。

数学的考察はともあれ、自作のモンテカルロ法によるシミュレーションが成功したのでようやくほっとした面持ちです。確かに客は選択しなおせば確率2/3で当たりをゲットできそうです。

第二種モンティホール問題

さて、ようやく第二種モンティホール問題について考えることが出来るようになりました。キッチリした定義があるわけではありませんがちょっと考えて見ます。

以下考察するにあたって、前提条件として、初期においてA、B、Cが提示された時に、どれが当たりXであるかどうかは、モンティ・ホール・ショーのスタッフのみが知っていることとします。すなわち、モンティにも客にも最初は真実がわからないものとするのです。このことは既にこの日記で提示済みの第一種モンティホール問題の私流の定義にも記述されています。A、B、Cの中に当たりXがひとつある。客もモンティもXがどれであるか最初は知らない。としました。(実はモンティも知っていて構わないのです。同じことです。客が第一めの選択をする時にモンティが知っている情報は客の行動に影響を与えません。次にモンティは客が選ばなかったG、Hについて当たりなのかハズレなのか、ひいては客の第一の選択Fが当たりなのかハズレなのかどうかまで知ることが出来ます。)

また、前提条件として併せて考えるべきことなのでしょうけれども、客がモンティから何らかの隠された情報を引き出せるとしても、その情報を得られる局面は1点にしぼられるとしたいところです。すなわち、モンティがはずれであるMを作為的に示す時点です。これ以外に作為を考えると最早確率の問題ではなくなるような気がします。たとえばモンティがせきばらいをするなどは考慮の範疇に含めません。

第二種モンティホール問題として考察したいこととしては、まず、モンティは客に知らせずに片八百長(かたやおちょう)が出来るでしょうか?ということになります。第一種の私のシミュレーションでは前提として、モンティはG、Hの中からハズレを1個選択する。これをMとする。残りをNとする。但し、G、Hがハズレの場合には無作為に選ぶものとする。としました。無作為を取りやめ、なんらかの作為性をモンティが持ち込んだときにこの情報について何も知らない客の有利不利を左右できるものなのでしょうか。

次にモンティの八百長は客との事前打ち合わせによる両八百長(りょうやおちょう)が出来るものかどうかについても考えてみたいところです。すなわち客はモンティが選択したMから何らかの意味を知り、F、Nのどちらかを選ぶ際に参考とするというということです。

これが第二種モンティホール問題だ!とイバレルものではありませんが気分としては上のようなものなのです。

私はまだ第二種モンティホール問題のシミュレータを作成していません。どのように考えていったら良いのかについて暗中模索中なのです。しかしながら例によって(間違っているかもしれませんが)直感で、モンティや客が作為性による勝率アップを狙ったとしてもそれは不可能なのではないか?と感じているのです。八百長は出来ないだろうと。つまり客は最適の戦略としてNを選択し確率2/3に甘んじるべきであると。

私はモンティホール問題に出会ったときに「有利不利なんて出てこない!」と断言した口ですから、あまり自信はありませんけれどね。

ちなみに、参考文献としてあげさせて頂いたモンティ・ホールの問題をどう考えるかにおいては、八百長が可能であるとの結論になっております。

私は間違っているのかも知れません。それでもツッパっています。頭が痛いです…わはははは

八百長は不可能である

大胆に言い切ってしまいました。orz

ええと片八百長にあたっては、モンテイがなんらかの作為でもって客の有利不利を左右することを意図したものとします。既に述べたようにモンティがはずれMを提示する際の作為があったとして、その事実を客が知らないものとするのです。モンティは「こいつチャラチャラしているから気に入らん、はずれさせてやれ」とか「おお、いい女だぜ、車が当たって喜んでもらえればこの後の打ち上げでムフフ」とか思ったとしても、何も知らない客の選択には影響が出ない、確率が高くなるわけではない、このようなことを言いたいのです。

このことは自明なのでしょうか?ま、ほとんど明らかという言い回しでしょうか。

私のシミュレーションの以下の部分を見てみるとわかると思うのです。モンティの作為を登場させたい部分です。


/* 場合分けは以下の通り */
/* F が当りの場合 
   モンティはG,H から 無作為に M を選ぶ */
/* F がはずれの場合
   モンティはG,Hの中に当たりがあることを知っている。
   当たりでないほうをMとするが作為は不可能である */

rnd5=Math.floor(Math.random()*2);

if (F == X) {
    if (rnd5 == 0) {
       M = G
       N = H;
    } else {
       M = H
       N = G;
    }
} else {
    if (G == X) {
       M = H
       N = G;
    } else {
       M = G
       N = H;
    }
}

モンティの作為は、客が最初に選んだFが当たりの場合の、G,Hの中からMを選ぶ際に行われます。ここでは確率1/2としています。(G,Hのどちらかが当たりならばはずれであるべきMは自動的に決まってしまいます。)rnd5で0か1かの乱数を出して丁半しているわけです。ここである一定の確率βを持ち込んだとしたらどうなのでしょう?そのことが何も知らない客の勝利条件に影響を与えるのでしょうか?

客は最終的にFとNとの二者選択を行います。最初に選んだFにするのか、それともモンティがMを示した後に再度許されたNを選択するのか。ここで注目したいのは自明なことなのですが、Fを選択した時の当たり確率とNを選択した時の当たり確率を加えると、1、すなわち100%になるという点です。すなわち、私たちはNで当たる確率を先に求めて次にFで当たる確率を求めても良いし、あるいは先にFで当たる確率を求めておいてからNで当たる確率を求めても良い。引き算をすればすむ話なのです。

まずはFで当たる確率を考えて見たいと思うのです。この確率は、モンティによる恣意性の確率βに依存しているのかどうかみてみると、まったく依存していません。はっきり言えば無関係。プログラムロジックを追いかけるとそのことがすぐにわかります。確率βが影響を与えるのはG,Hがともにハズレの時のG、H、どちらをMとするかでしかありません。しかも両方ハズレですからほとんど意味がないのです。確率βは客の選択のFに影響をまったく与えていません。

私たちは第一種モンティホール問題でFが当たりである確率を1/3であると結論づけましたが、確率βを導入してもこの結論に変わりがあるわけではないことがわかります。

したがってモンティが片八百長でさじ加減をしようとしてもそれは無駄であることがわかります。片八百長は不可能なのです。自明でしたか?申し訳ありません。

八百長は可能なのか

八百長は可能なのかについては、かなり考えなくてはいけません。モンティが、ある意図をもって、あるいは恣意性を付加してMを選択した時に、そのこと自体が客にとっての情報になり、客の勝利確率が上がるかどうか・・・

どのような八百長が考えられるのでしょう?誰にも悟られずにです。

みのもんたさんが回答者にファイナルアンサーを促す場面を思い描いてしまいました。あの場面に八百長は可能なのかどうかなのです。モンティさんの場合には、G,HのどちらかからMを提示する際の意図的演出を客が見抜く必要が出てきます。この意図的演出の手段は非常に限られています。はてさてどうしたものやら。

もう少し考えなくては・・・・今の私の考えでは結論はどのような作為をもってしてもモンティは客に情報を伝えることが(統計的には)出来そうにない、というものです。個々の試行では運良く伝えられるケースも場合によってはありえるかもしれませんが、そうした場合、事前に取り決めがあるはずです。その取り決めが、運の良いケースでは有効だけれども運が悪ければかえって逆効果になり試行全体としては効果が相殺されているのではないでしょうか?そのような気がしてならないのです。

私は咳払いなどの符丁は排しています。お忘れなきよう。例えば、モンティが2つのドア、G、H、を見たときにはFが当たりかハズレかは、モンティにはわかります。そのことを咳払いやウィンクで伝えれば、客にとっては1/3の確率的取り分は確定です。Fが当たりであることを伝えられたならばFを選択すれば良いからです。Fがはずれであることをモンティが知ったならば、モンティは、G,Hの中からはずれであるMを差し出します。この場合にも、咳払いなどで、Fがハズレであることを客に伝えることが出来ます。客はNを選択します。これでは必勝です。もはや確率の問題として面白いものではありません。

咳払いなどの(露骨な、場合によっては他の視聴者にも見抜かれるような)八百長を使わずに、モンティが客に情報を与える手段はただひとつです。それは、G,H,の中からMを選択する特定の手段があり、客はあらかじめその手段を知っている、こういうものです。この取り決めはどのようなものなのでしょう?そしてその取り決めは果たして有効なのでしょうか?

ひとつの両八百長の試み

モンティが秘匿された情報を客に示す方法のひとつを考察してみます。最良とは限りませんし成功しているのかどうかもまだ不明です。

まずは客の最初の選択Fがハズレである場合を考えて見ます。事前に客とモンティとがどれだけ打ち合わせを繰り返していたとしても、モンティはMの選択方法によって秘匿された情報を客に伝えることは出来ません。なぜならば、モンティは行動の自由をこの時点で奪われているからです。客の選択FがハズレならばG、Hのどちらかは必ず当たりですし残る片方は必ずハズレです。モンティは必ずハズレを客に提示しなくてはいけませんから選択することはかなわず、しぶしぶハズレMを客に示します。行動の自由が奪われているのですからモンティはその意図を実現する手段を持っていません。客はモンティからなんらかの情報を入手することはあきらめなくてはいけません。

従って客の最初の選択Fがハズレである場合には勝率アップは望めません。

次に客の最初の選択Fが当たりである場合を考えます。この場合にはモンティにはある程度の行動の自由が与えられます。すなわち、G、Hのどちらかを選択する際に意図的に選出し、それをもって客に情報を伝えることが可能かもしれないのです。簡単に思いつく目的は「Fは当たりXである」と伝えることでしょう。そうすれば客は安心してFを選びます。ずっと漫然とNだけを選択して確率2/3をゲットするよりも、モンティからの情報を入手してときおりFを選ぶ、このほうが勝率は良くなる可能性はないのでしょうか。

注意しなくてはいけないことがあります。客は上で考察した2通りの事象、モンティに行動の自由がない場合とある場合とのどちらが発生しているかを知ることが出来ないということです。この注意点に気をつけると心配なことが出てきます。さきほどは行動の自由がある場合での勝率が良くなる可能性を論じましたが、同じ基準で行動の自由のない場合に悪影響が出て勝率を下げてしまう可能性があるからです。

さて、とは言えやってみましょう。モンティと客はどのようなことを事前に打ち合わせておくべきなのでしょうか。

モンティから客への情報伝達手段のひとつとしてネーミングとしてサイクリック規則を導入しましょう。以下はモンティと客の事前の打ち合わせです。

モンティ
最初にA,B,Cがあるわけだが、とりあえず君は野生の勘で、どれかひとつを選びたまえ。なぁに、私だって最初はどれが当たりかなんかわからないしな。大勢に影響あるまい。
わかった。それをFとしておこうか。俺が最初に選ぶからFirstの頭文字だ。
モンティ
うむ。仕掛けとしてサイクリック規則を導入するぞ。サイクリックとは循環の意味だ。A→B→C→A→B→C→… という順番だ。簡単だろう?
ん?一見簡単そうだが、それをどうするんだい?
モンティ
おまえさんがFとしてBを選んだとする。例えばだ。野性の勘でな。この時には、順繰りでCにはGという名前をつけ、AにはHという名前をつけることとする。いいか?ABCABCの順番で巡回するときに、Bから始めるならBCABCAだ。ここでF,G,H,の名前をつけてやるのさ。今はBがFだから、CがG、AがHという按配だ。ここまではいいか?では復習だ。最初におまえさんが選ぶFがCだったらどうなる?
へへ、簡単だな。CABCABだからな。CABにFGHを対応させればいいんだろう?CがFならAはG、BはHとなるわけだ。
モンティ
その通り!サイクリックなネーミングってやつだ。さてと、イカサマの方法なんだがな、こんな風にしよう。お前さんがFを選ぶとする。私、モンティは司会者の特権で残りのG,Hの中身を知ることが出来る。
うんうん、そいつを教えてくれるってぇことだな。
モンティ
そうなりゃしめたものさ。私はおまえさんが選んだFが当たりかハズレかを知っているんだ。だからな、こう考えてくれ、おまえさんの野性の勘が万が一当たっていたならば私は常にGを選ぶ。選んだGがA,B,Cのどれになるかはもうわかるよな?順繰りに隣りのやつだ。
お、そうなりゃぁ俺は俺様の勘が当たったことを自慢できるわけだ。モンティさんがGを選んで(このGをMという名前にするか?モンティさんの名前の頭文字のMだぜ。残りはNだな。)「Mはハズレです」って言えば、俺はFを選択し続けるわけだなぁ。テレビの前の視聴者はハラハラドキドキだろうよ、なにせ、すっかりネタバレで、最初に選んだのとは違うNを選ぶのが定石だからな。俺がFを選べば大胆な奴と言われるだろうよ。
モンティ
うむ、さて続きだ。ここまでは最初に選んだFが当たりの場合だ。野性の勘が当たった時だな。次は最初に選んだのがハズレの場合についてなのだが・・・
ん?口ごもってどうしたい?何か問題でもあるのか?
モンティ
おまえさんの勘がにぶくてFがハズレの時にはだな、いくら司会者たるこの私でもいかんともしがたいのだよ。G,Hのどちらかは当たりだからな、私はそのうちのハズレの方をMとして差し出すことになるよ。「これはハズレでした」とね。このケースでは私には行動の自由がないからおまえさんの賞品ゲットに役立つ情報を与えることができないんだ。不可能なんだよ。
ん?この場合には俺はFとNとのどちらを選べばいいんだ?んんんん?そうか、とりあえずサイクリック基準に従えばいいのかな?出来ればNを選びたいところだがそうもいかねぇ。まぁいいか。仮にモンティさんがHをMとして差し出した時には、少なくとも俺の勘がはずれていることだけはわかるわけだ。そうなよな?モンティさん。
モンティ
そうだな、勘があたってFが当たりならば私は絶対にGをMとして差し出すことになるよ。対偶を取れば、おっと、対偶ってわかるかな?私がHをMとして差し出して「ハズレでござい」と言えばだ、おまえさんは絶対にFを選択しては駄目だ。確実にNが当たりだからね。
どうやらその通りだな。またしても俺に有利だな。だが、もしも俺の勘がハズレでFがハズレていて、しかもモンティさんがいたしかたなくGをMとして「はずれでござい」とすることだってあるわけだよなぁ。これって怖いよな。どうなるんだい?
モンティ
俺がGをMとして差し出した以上、Fが当たりである確率は高いのじゃぁないのかな?いずれにせよ、最初のFが当たれば大もうけ、当たらなくとも私がHをMとして差し出せばやっぱり大もうけ。それ以外はよくわからん。
ううむ、よくわからんところが不安だが・・・もっと良い方法が他に方法はないのかな?そうだな、難しいな。何かしら目立つことをすれば天下のモンティさんの人気も地に落ちるしなぁ。俺も車1台ごときでモンティさんを窮地に追いやることはしねぇよ。よしわかった。少なくとも俺の野性の勘が当たってFが当たりの時だけは確実に賞品をゲットできるわけだしな、それだけで御の字だよ。
モンティ
そう言ってくれると助かるよ。よし、まとめるぞ。私がMとしてGを差し出せばお前さんはFが当たりであろうという自信を持つ。MとしてHを差し出したなら間違いなくFははずれだ。Nを選べ。
あぁ、了解、OKだよ。車を当てたときには少しはペイバックするぜ。
モンティ
ありがとよ。私もヤバイ橋を渡るからな、ペイバックを期待しているぜ。おっともうこんな時刻だ。カメリハが始まってしまう。いいか?サイクリックを忘れるなよ?健闘を祈る。

とまぁ、こんな具合に事前打ち合わせを行ってしまったわけです。

この挑戦事例はあくまでも「ひとつの方法」でしかなく、成功するのか失敗するのか、まだ明らかになっていません。はたしてどうなるのでしょうか?勝率は高まるのでしょうか?

モンティと客の以上の打ち合わせの条件ならば私はシミュレータを作れそうです。これからゴニョゴニョしてみます。

ひとつの両八百長の試みシミュレータ

シミュレータが出来上がりました。(日記を書くときに事前に推敲していないことがよくわかりますね。)

実行すると綿密?な事前打ち合わせにもかかわらず勝率がさっぱりあがっていないことがわかります。推定勝率は2/3です。ソースは以下に。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"> 
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>Monty Hall Dilemma Simulator</title>
<link rel="INDEX" href="http://stardust.s2.xrea.com/index.html">
<link rev="MADE" href="mailto:star_dust@mail.goo.ne.jp">

<script type="text/javascript">
<!-- ここからスクリプトを見えなくする

/* 初期処理開始 */
labebegin :

/* 固定値 */

var A = "A";
var B = "B";
var C = "C";

/* 変数 */

var rnd1 = 0;
var rnd2 = 0;
var rnd3 = 0;
var rnd5 = 0;

var X = "";
var Y = "";
var Z = "";
var F = "";
var G = "";
var H = "";
var M = "";
var N = "";
var S = "";

/* yaotyo を初期化する */
var yaotyo = 0;

/* 試行回数 maxloop を 1000 とする */
var maxloop = 1000;

/* loop回数loop を 0 とする。*/
var loop = 0;

/* 初期処理ここまで */

/* 主処理開始 */
labelmain :

/* もしも、loopが maxloopならば 主処理終了へ飛ぶ */
while (loop < maxloop) {

    /* A,B,C から2個選ぶ これをはずれ、Y,Zとしておく 
    残りを当りとして X としておく */

    rnd1 = Math.floor(Math.random() * 3);
    rnd2 = Math.floor(Math.random() * 2);
    switch (rnd1) {
        case 0:
            X = A;
            if (rnd2 == 0) {
                Y = B;
                Z = C;
            }
            else  {
                Y = C;
                Z = B;
            }
            break;
        case 1:
            X = B;
            if (rnd2 == 0) {
                Y = C;
                Z = A;
            }
            else  {
                Y = A;
                Z = C;
            }
            break;
        case 2:
            X = C;
            if (rnd2 == 0) {
                Y = A;
                Z = B;
            }
            else  {
                Y = B;
                Z = A;
            }
            break;
    }

    /* 客はA,B,C から最初の1個を選ぶ 選んだものをFとしておく。
    選ばれなかったものを G,H としておく。サイクリック命名規則適用 */

    rnd3 = Math.floor(Math.random() * 3);
    switch (rnd3) {
        case 0:
            F = A;
            G = B;
            H = C;
        case 1:
            F = B;
            G = C;
            H = A;
        case 2:
            F = C;
            G = A;
            H = B;
    }

    /* モンティは客が選ばなかったG.H の中から 
    はずれ{Y,Z}に含まれるものをひとつ選ぶ。(かならず存在する)
    これをMとしておく。
    また、{Y,Z}のうち、M でないものを Nとする */
    /* この際、モンティの選択には、戦略があるものとする【重要】*/

    /* 場合分けは以下の通り */
    /* F が当りの場合 
    モンティはG,H から G を M として選ぶ 【重要】*/
    /* F がはずれの場合
    モンティはG,Hの中に当たりがあることを知っている。
    当たりでないほうをMとするが作為は不可能である */

    rnd5 = Math.floor(Math.random() * 2);
    if (F == X) {
        M = G;
        N = H;
    }
    else  {
        if (G == X) {
            M = H;
            N = G;
        }
        else  {
            M = G;
            N = H;
        }
    }

    /* 客は、モンティが示した M 以外の中から、
    F ないし N を選択することとなる。
    ここでは客は事前の八百長打ち合わせ通りに行動する 【重要】*/

    /* 客は、MがGならば、Fを選ぶ。これをSとする。*/
    /* 客は、MがHならば、Nを選ぶ。これをSとする。*/

    if (M == G) {
        S = F;
    }
    else  {
        S = N;
    }

    /* Sが当たりXならば カウンタyaotyoに1を加算する。*/

    if (S == X) {
        yaotyo = yaotyo + 1;
    }

    /* loop に1を加え、主処理開始へ飛ぶ */
    loop = loop + 1;

    /* 主処理終了 */
}

/* 終了処理開始 */
labelend :

/* yaotyoをalert()する。*/
alert('試行回数=' + loop);
alert('勝利回数=' + yaotyo);

/* 終了処終了 */
// ここまで見えなくなる -->

</script>

</head>
<body>
<h1>Monty Hall Dilemma</h1>
<p>Monty Hall Dilemmaで最初に選んだ扉とは異なる扉を選択した時の勝率を導く為に
繰り返し試行して結果をalertするJavaScriptによるsimulatorです。</p>
<p>Montyさんは客と以下のような打ち合わせをしたものとします(第二種Monty Hall Dilemma)</p>
<ol>
<li>ABCABCABC…のサイクリックな名前で情報を伝達します。</li>
<li>モンティが示したはずれMがGならば客はFに当たりがあるであろうと推理します。</li>
<li>モンティが示したはずれMがHならば客はNに当たりがあるであろうと推理します。</li>
</ol>

<noscript>
<p>javascript が実行できませんでした。ごめんなさい。JavaScriptでalert出すだけの文書です。</p>
</noscript>


</body>
</html>

何度かシミュレートしてみましたが、事前打ち合わせの効果が出ていません。どうも、モンティがはずれMとしてGを示したときに、(打ち合わせではFが当たりっぽいという理屈でしたが)そのうち半分はハズレてしまうようです。MとしてHを示してくれれば勝率100%なのですが。MとしてHを示してくる確率は1/3のようです。MとしてGを示してくる確率は2/3のようです。この時には半分しか勝てません。両者あわせて2/3の勝率ということになります。

Fが当たりの時にはモンティはGをはずれMとして選択し客に情報を伝える試み、良いアイデアかもしれませんでしたが、Fがはずれの時の副作用が大きすぎて利得が相殺されていることがわかってきます。

余談ですが、この打ち合わせの両八百長で得をする人がいます。モンティです。モンティは客が勝った時だけバックリベートでうまい汁を吸います。うまいこと言って成功しない八百長を持ちかけてモンティが客を騙した図、とも考えられます。

八百長は成立しないのか?

上のシミュレーションの事例では確かにうまくいきませんでした。ですが、これはたまたま戦法が悪かったのかもしれません。良い戦法があれば両八百長は成立するのかもしれません。しかしながら私にはそのような戦法なぞ無いのだ、という気がしてならないのです。

お話はこれまで。ひとまずモンティホールの問題については締めくくりたいと思います。もしもMの示し方による客への情報伝達による必勝戦術があれば教えてくださいませ。お願い致します。ないでしょ?あるかなぁ?

そうそう、私は冒頭でご案内した参考文献の意味をいまだに解読していません。八百長が成立する事例を作れないこともあります。不思議不思議なのです。

かんな様からコメントを頂きましたぁ

かんなさん、コメントをありがとうございます。これは嬉しいですね、モンティに選り好みがあった場合について既にベイズの定理を正しく使った分析が終了しているわけですね、ラッキー。ということは八百長は不可能と断言しても良さそうですね。たぶん。

ええと、かんなさんの証明は、私が本日の日記で引用させて頂いている塩沢様による分析:モンティ・ホールの問題をどう考えるかとは結果が一致していません。たぶん。(汗)私は塩沢様の分析は読んでいて意味がわかりませんでしたが、かんなさんの証明はスラスラとわかったつもりになれました。

かんなさん曰く、

この記事を読んで、やっとあのとき(何時)言われたことの意味がわかったという。

ええと、あのとき(何時)言われたことと言うのは、水無月ばけらさんちの個別記事表示(記事2546)@新生鳩丸掲示板♯のスレッド、「人狼BBSにおける確率論のモンティ・ホール問題の応用」で私が恥をかきつつ更正するさまをドキュメンタリータッチで描いた超大作のことだと思います。ちなみにモンティホールの問題は人狼BBSでの占い師3名から本物を選ぶ話とは全く状況が異なりますです。(恥)応用は不可能です。あのとき私による「選り好みがあっても客の勝率は変わらない」という確率計算っぽく示したことって、私の技量がアホでして説得力なく…ご迷惑をおかけいたしました。かんなさん、あらためましてきちんとした分析をありがとうございます。そして、私に第一種モンティホールの問題についての真相を悟らしめて頂いたばけらさん、ありがとうございました。

なんだか無事にまとまってヨカッタァ。私の中では決定版です。

そしてモンティ・ホール・ショー

せっかく打ち合わせをしていたモンティと客だったが、客が最初の選択、Fを決定した後、モンティがまさにMを示した瞬間、客は興奮で頭に血がのぼり一時的に失神してしまった。よほど車が欲しかったのだろう。代理として一緒に来ていたその客の子供(さっきまで母親に抱かれて寝ていたのだ)がステージにあげられた。母親は倒れた主人に付き添いで医務室に去っている。

子供がステージに上がったときに見たものは、まだ閉ざされている2つのドアだ。片方にお父ちゃんが欲しがっていた車があると聞かされた。片方には羊がいるという。羊のドアをあけると負けなのだと聞かされた。

寝ていた子供は先ほどまでの経緯を知らない。ましてやモンティとの密約も知らないのだ。あるのは2個のドアーと1個当たりがあるという事実だ。

  1. ステージ上での直前までの経緯を知らされなかった場合に子供が2個のドアーのうちどちらか一方を選択すると有利であるということがありうるか
  2. 経緯を知らされた場合に子供が選択するドアーの有利不利に変動が発生するのか

モンティは悩んだ。なんとかしなくては。子供は眉をひそめながら「ど・ち・ら・に・し・よ・う・か・な」と指を交互に指し示して選択行動を開始しようとしている……………

あなたならどうする?