子どもが百人いる。彼らは十分論理的に思考することができ、またお互いの論理能力を信頼しあっている。
一人の教師がいて、子どもたちはこの教師の命令に背かない。教師は子どもたち一人ひとりに帽子をかぶせる。帽子には黒と白の二色があるが、自分が何色の帽子をかぶっているか、子どもには知らされない。当然他の99人の子どもが何色の帽子をかぶっているかは一目瞭然である。
教師は次のように言った。
「自分が何色の帽子をかぶってるか、見てはいけない。他人に聞いてもいけない。
君らのうち、少なくとも一人は黒の帽子をかぶっている。
私はこれから笛と太鼓を交互に鳴らし続ける。笛→太鼓→笛→...の順番だ。笛がなったら、全員目をつぶれ。そして自分が黒の帽子をかぶっているとわかったものは黙って手をあげよ。太鼓がなったら目を開けて他のものが手を上げたかどうかを見よ。」
実は100人全員黒の帽子をかぶっている。さあどうなる?
答え見たけど。
以下この答えになる理由について考えてみた。
思うに、以下の2点がポイントではないか。
- ゲームの参加者を人間だと思ってはいけない。こいつらは論理的に到達できる答えには必ず到達するし、わかったことを隠すこともできない。つまり一定のルールに従って動く、プログラムのようなものだと考えなければならない。
- 「自分以外の99人が見える」と思うとややこしくなる。A0にとって不確定なのはA0だけだが、「A0の想像のなかのA1」にとっては、A0の帽子とA1の帽子の両方が不確定のままになっている。「A0の想像のなかのA1の想像のなかの...」と重ねていくと、不確定な帽子の数はどんどん増えていく。
以下、任意の参加者A0の気持ちを考える。仮定より、A0, A1,...,A99は他の参加者の気持ちを想像することができる。
#A0の気持ち。 自分が白だと仮定する。 このとき、まわりの人間(仮にA1とする)には1人の白い帽子の人間が見えているはずだ。 A1の気持ちを考えよう。
#A0が思うA1の気持ち。 (眼前に白帽子が1人) 自分が白だと仮定する。 このとき、まわりの人間(仮にA2とする)には2人の白い帽子の人間が見えているはずだ。 A2の気持ちを考えよう。
#A0が思うA1が思うA2の気持ち。 (眼前に白帽子が2人) 自分が白だと仮定する。 このとき、まわりの人間(仮にA3とする)には3人の白い帽子の人間が見えているはずだ。 A3の気持ちを考えよう。
...
#A0が思うA1が思う...A99の気持ち。 (眼前に白帽子が99人) 自分が白だと仮定する。 このとき、自分が白だと仮定すると黒が1人もいなくなり、題意に反する。 よって自分の帽子は黒である。
# 以下鐘が鳴るたびに起る出来事。
1度目の鐘。 誰も名乗りでない。 #A0が思うA1が思う...A98の気持ち。 (眼前に白帽子が98人) 自分が白だと仮定すればA99は名乗りでるはずだ。 よって自分の帽子は黒である。
2度目の鐘。 誰も名乗りでない。 #A0が思うA1が思う...A97の気持ち。 (眼前に白帽子が97人) 自分が白だと仮定すればA98は、A99が名乗りでなかったことにより、名乗りでるはずだ。 よって自分の帽子は黒である。
3度目の鐘。 誰も名乗りでない。 #A0が思うA1が思う...A96の気持ち。 (眼前に白帽子が96人) 自分が白だと仮定すればA97は、A98, A99が名乗りでなかったことにより、名乗りでるはずだ。 よって自分の帽子は黒である。
...
98度目の鐘。 誰も名乗りでない。 #A0が思うA1の気持ち。 (眼前に白帽子が1人) 自分が白だと仮定すればA2は、A3, A4,...,A99が名乗りでなかったことにより、名乗りでるはずだ。 よって自分の帽子は黒である。
99度目の鐘。 誰も名乗りでない。 #A0の気持ち。 (眼前に白帽子が0人) 自分が白だと仮定すればA1は、A2, A3,...,A99が名乗りでなかったことにより、名乗りでるはずだ。 よって自分の帽子は黒である。
以上により、100度目の鐘によってA0は名乗りでる。
A0は任意の子どもであるため、全員が名乗りでる。
■ 補足
ただし本当は、上記の推理が成り立つためにもう1つ仮定が必要だと思う。
彼らは十分論理的に思考することができ、またお互いの論理能力を信頼しあっている。
この仮定が述べているのは、A0がA1,A2,...,A99の論理能力を信頼しているというとこまで。
この仮定だけだと、A0にとって「A1がA0,A2,...,A99の論理能力を信頼しているかどうか」はわからないままになってしまう。
しかし、多分そういうメタな知識まで仮定しないと成り立たない話なのではないか。
だから本当は、「彼らは十分論理的に思考することができ、またお互いの論理能力を信頼しあっており、お互いがお互いの論理能力を信頼しあっているということを知っている」という仮定が必要な気がするぜ。
■ 補足2
100人だからむずかしいが、3人だとわかりやすい気がする。
A0, A1, A2の3人がいる。
A0「おれが白だとすると、A1がどう思うか考えてみよう。A1はきっとこう思うはずだ」
#以下A0の想像するA1
A1「お、A0は白い帽子か。これでおれも白い帽子なら、最低1人は黒がいるはずだから、A2が名乗りでるはずだぜ。次の鐘でA2が名乗りでるかどうか待ってみよう。もしA2が名乗りでればおれは黒だし、名乗りでなければおれは白のはずだ」
##しかし2回鐘がなっても、A2もA1も名乗りでない
だから3回目でA0が名乗りでる。
コメント(1)
コメントする
トラックバック(0)
このブログ記事を参照しているブログ一覧: なぞなぞ
このブログ記事に対するトラックバックURL: http://www.at-akada.org/mt/mt-tb.cgi/845
お、やってますね。
>こいつらは論理的に到達できる答えには必ず到達するし、わかったこと>を隠すこともできない。つまり一定のルールに従って動く、プログラム>のようなものだと考えなければならない。
これはそうですね。私が見た解答法でもおよそ「人間らしくない」思考をしていた。
>お互いがお互いの論理能力を信頼しあっているということを知っている」という仮定が必要
そだね。もとの問題では「彼らは十分に賢い」という条件だけだったので、それでは足りないと思い「信頼しあっている」というのを加えたのですが、「他人同士も信頼しあっていることを知っている」という明示も必要ですね。
赤田氏の証明に間違いがないかはちょっとすぐにはわからないな。ちょっと考えてみます。
』 (2007/11/19 0:46)