モンティ・ホール問題のシミュレーションです。 緑の旗をクリックすると、シミュレーションが実行されます。 モンティホールスプライトのスクリプトエリアで「定数:試行全体の数」を変えると、シミュレーションの試行回数が変わります。 ターボモードの利用をお勧めします。 モンティホールスプライトの方が、本来の問題(司会者がドアの中を知ってドアを開ける問題)です。 非モンティホールスプライトは、これと似て非なるルールで、司会者がドアの中を知らずにドアを開けるパターンです。 除外事例数は、非モンティホールパターンで、司会者が自動車の入ったドアを開けてしまった場合の数であり、この場合は、確率計算の分母から除外しています。本来のモンティホール問題の場合は、この変数が必ずゼロになります。
モンティ・ホール問題 閉まった3つのドアのうち、どれか一つの中に自動車が入っている。ゲーム参加者はまず、どれか一つを選ぶ。その後、司会者は、参加者が選ばなかったドアの中を見て、自動車が入っていないドアを一つ開ける。参加者は、この時点で、選択を変更できる。最終的に参加者が開けたドアの中に自動車が入っていれば、参加者はその自動車をもらえる。 さて、参加者は最初の選択を変更しない場合と、変更する場合と、どちらが有利か? 私は、司会者がドアを後から開けても、各ドアの成功確率が変わるはずがないと思っていました。 しかし、司会者がドアの中身を知っていて、必ず自動車が入っていない方のドアを選んで開けるという条件がある場合には、話が違うという説明を知ったので、シミュレーションをして確かめてみました。 モンティホールスプライトの方が、本来の問題(司会者がドアの中を知ってドアを開ける問題)です。 非モンティホールスプライトは、これと似て非なるルールで、司会者がドアの中を知らずにドアを開けるパターンです。 シミュレーションを実行するまでもなく、アルゴリズムを組み立てている段階で、「司会者がドアの中身を知っていて、自動車が入っていない方のドアを必ず開けるという条件」が付いている場合と、そうでない場合とで、処理が違うと分かるので、プログラミングは、こういうことを理解するためにも役に立つなあと感じました。 私のアルゴリズムに誤りがありましたら、ご指摘ください。よろしくお願いいたします。