ゴミ箱の中のメモ帳

まだ見ぬ息子たちへ綴る手記

数学的発想

考えて欲しい。あなたがミリオネアに挑戦しているとする。
今は最終問題。1億円の問題だ。挑戦したのはいいが問題の意味が全くわからない。一変の考える余地もない問題だ。

回答は当てずっぽうしか無い為「A」と考えていたとする。だがここで思い出した。「50:50」がまだ残っている。あなたは幸せモノだ。正解率が1/4から1/2にUPすると考えたからだ。

そして「50:50」の結果、「C」と「D」が消え、「A」と「B」が残された。


あなたは悩む。最初に考えていた通り「A」のままにすべきか、「B」に変更すべきか。

ここで実際に考えて欲しい。あなたなら「A」のままにするか「B」に変更するか。

答えとその理由を導き出したら、下を読み進めて欲しい。これは感や当てずっぽうで考えるのではなく、きちんと数学で考えられる問題だ。

この問題の応用系は実生活の中にいくらでもある。

能力を開く「数学的発想」法

能力を開く「数学的発想」法


考えついただろうか。そして考えてもらって恐縮だが、少し問題を変更するとしよう。この問題は数学的確率の議論を招く可能性が残っているからだ。

だが怒らないで欲しい。次の問題は先の問題から不確定要素を取り除き、議論の余地を取り除いた完全な確率にするために変更しただけになる。先の問題を解いていたら、この問題も同じ考えで数秒で選ぶことが出来るはずだ。


f:id:mon0:20140518163007p:plain

上の図のように「A」、「B」、「C」の3つの扉があるとする。そしてその扉を開けると1つの扉の奥にだけ1億円の現金が置かれている。もちろんハズレの2つの扉の奥には何もない。1億円の置かれている場所は完全なランダムだ。

先ほどの問題からの変更点は、選択肢をそもそもの3つにしたこと。確率を純粋に1/3にしたこと。経験則や思考による確率の上昇を0にしたこと。これだけだ。


そしてあなたは「A」を選んだとする。まだここで「ファイナルアンサー」とはならない。あなたが「A」を選ぶと、司会者が選ばれていない「B」と「C」のどちらかの扉を開けてくれる。もちろん司会者が開けるのは「ハズレ」の何もない扉だ。この司会者が「ハズレ」を開ける可能性は保証されている。

1億円が「B」の扉にあるとすれば「C」を、「C」の扉にあるとすれば「B」を、「A」の扉にあるとすれば「B」か「C」どちらかの扉を開けてくれる(これもランダムとする)。


f:id:mon0:20140518163022p:plain

そして今回は「B」の扉を開けてくれた。もちろん「B」の扉の奥には何もない。

ここで問題だ。あなたは「A」の扉のまま「ファイナルアンサー」とするか、「C」の扉に変更して「ファイナルアンサー」とするか。

単純に確率として考えて欲しい。そのままにするか変更するか、どちらが1億円を貰える可能性が高いだろうか。

「Cに変更してAに1億円があれば死にたくなるからAのままにしておく」、「男が一度決めたことを変えてはいけない」のような感情論や精神論は抜きに考えてほしい。何度も言うが冷静に確率で考える問題だ。あなたも確率が高いほうを選びたいだろう。


どちらを選んだろうか。「変更しない」、「変更する」の選択肢と、それを選んだ理由が必要になる。その理由から当選確率も考えて欲しい。




f:id:mon0:20140518163104j:plain


この問題の「正解」、1億円が貰える可能性が高まるのは「変更する」と言う選択肢だ。この問題であれば変更すると当選確率が2倍になる。ドアを4つにして司会者が開けるドアを2つにすると3倍、ドアの数を100にして司会者が開けるドアを98にすると99倍の確率で「変更する」ほうが高確率になる。

私もこの問題を出された側になるのだが、この問題を出してきた当人はどうしてもこの理屈が理解できないという。最初にドアを選ぶタイミングでは1億円があるドアの確率は1/3、そして、司会者が一つのドアを開けた時には確率が1/2になると勘違いしているようだ。たしかに見かけ上は1/2になるだろう。2つのドアが残り、そのどちらかに1億円がある確率は1/2同士だ。

だがこの前提は間違っている。確かに最初から2つのドアがあり、そのどちらかに1億円がある確率であれば1/2だ。


だが今回の問題は、「司会者が"確実"にハズレのドアを開ける」ということだ。


f:id:mon0:20140518163038p:plain

この図を見てもらえばわかるように、3つのドアから1つのドアを選んだ時点で、そのドアの向こうに1億円がある確率は1/3、そして、そのドア以外に1億円がある確率が2/3だ。

同じく100個のドアから一つのドアを選んだ時点でそこに1億円がある可能性は1/100で、そのドア以外の確率は99/100だ。


これは容易に理解できるだろう。そして、その「選んだ以外のドアに1億円がある確率」は司会者がドアを開けたところで変わることはない。理由は単純だ。司会者はハズレのドアを開けることが保証されているのだから、残した一つに1億円があるかどうかの確率は最初から変わっていないからだ。

ここまで読んでも反論したい方がいるかもしれないのでモンテカルロ法的なシミュレーションをしてみよう。


ソースコードはこれだ。

#!/usr/bin/python3.4

import random

challenge = 1000000
door = 3
change = 0
stay = 0

point = [random.randint(1,door) for i in range(challenge)]
for i in range(challenge):
    money = point[i]
    select = 1

    challenge_door = [j for j in range(1,door+1)]
    if money == 1:
        out = challenge_door.remove(money)
        change_door = 2
    else:
        out = challenge_door.remove(money)
        change_door = money

    if money == select:
        stay += 1
    elif money == change_door:
        change += 1


    #print("MONEY: %d, SELECT: %d, OUT: %d" % (money, select, out))


print("CHALLENGE: %d" % (challenge,))

print("POINT")
for i in range(1,door+1):
    print("%s: %d" % (i, point.count(i)))

print("RESULT")
print("STAY: %d" % (stay,))
print("CHANGE: %d" % (change,))
ratio = (stay*100)/change
print("RATIO: %f:%f" % (ratio, 100))

そしてこれをじっこうした結果がこちら。

CHALLENGE: 1000000
POINT
1: 332492
2: 333662
3: 333846
RESULT
STAY: 332492
CHANGE: 667508
RATIO: 49.810939:100.000000


プログラミングが出来ない方のために解説すると、3つのドアにランダムで1億円を配置し、常にAのドアを選択するとする(当選のランダム性が保証されているから常にAを選択しても問題ない)。そして、ハズレのドアを除外し(Aに一億円があるときは常にBを開ける)、そのままAのドアを開ける時と、ドアを変更した時に1億円が当たる可能性を100万回シミュレーションした結果だ。

乱数のシミュレーションになるため実行する度に結果は多少異なるが、今回も先に説明した確率の近似値が結果として現れている。

乱数から1億円を設置するドアを配置した結果として、「A: 332492, B: 333662, C: 333846」と少し偏りはあるがほぼ1/3に分布している。そしてその結果として変更しない場合は「332492」、変更した場合は「667508」とこちらも2倍に近い値となっている。

もしドアの数を100に増やしたとしても期待値通りの結果になる。

CHALLENGE: 1000000
POINT
1: 9817
2: 10136
3: 10009
... 省略
99: 10112
100: 9809
RESULT
STAY: 9817
CHANGE: 990183
RATIO: 0.991433:100.000000


このシミュレーションの結果からもこの計算は正しいことが証明できる。


このように世間では簡単な数学で考えることができることが多々ある。だがその問題を考えること無く感に頼っていることや、数学的な問題であることにきづけない、「数学なんて生活の役に立たない」と勘違いしているからこそこのような問題が起こってしまうのだ。

数学の発想のしかた (発見的教授法による数学シリーズ3)

数学の発想のしかた (発見的教授法による数学シリーズ3)

数学的思考法―説明力を鍛えるヒント  講談社現代新書

数学的思考法―説明力を鍛えるヒント 講談社現代新書

確率的発想法~数学を日常に活かす

確率的発想法~数学を日常に活かす

運は数学にまかせなさい――確率・統計に学ぶ処世術 ((ハヤカワ文庫NF―数理を愉しむシリーズ))

運は数学にまかせなさい――確率・統計に学ぶ処世術 ((ハヤカワ文庫NF―数理を愉しむシリーズ))