100匹のドラゴン

100匹のドラゴンという論理クイズ、思考実験があると最近知ったので、自分なりにアプローチを考えて解いてみました。

問題文は他サイトから引用しています。

ある島に100匹のドラゴンがいる

100匹のドラゴンは全て緑色の目をしている

この島には「自分の目の色が緑色だと気づいた時その日のうちに島から出なければならない」という風習がある

しかし、互いの目の色の話をすることは禁じられており、鏡もないため自分の目の色を知らずにずっと生活している

この島を訪れた旅人がドラゴンたちに「この島には少なくとも緑色の目をしたドラゴンが1匹いる」と告げた

この島に何が起きるでしょうか

論理クイズ「幼女とドラゴンの島」で未来を予知できるか

初めて問題文を見た時は、どのドラゴンにとっても当たり前の事実を言われただけなので何も変化は起きないと思っていました。

だって、各ドラゴンは自分以外の99匹のドラゴンが緑色の目をしていることはずっと前から知っているはずで、新しい情報は何も含まれていないと思ったのです。

しかし、論理的で優秀なドラゴンたちはある一つの答えにたどり着きます。

話を戻すと、私のこの問題へのアプローチは以下の通りです。

・場合分けは「緑色の目をしたドラゴンの数」ではなく「あるドラゴンXから見た自分以外の99匹のドラゴンのうち何匹が緑色の目をしているか」を基準に行う。

・ドラゴンX以外のドラゴン達がどのような行動をするかで、ドラゴンXは自分の目の色を類推する。

あるドラゴンXは、トール様やカンナちゃんのような特定の個人(個竜?)ではなく、適当に指差した任意のドラゴンのことを指しています。

毎回「緑色の目ではないドラゴン」と書くのは面倒なので、緑色の目ではないドラゴンの目の色は、便宜的にすべて黒色とします。

また、なるべくシンプルにするために今後は以下のように呼ぶことにします。

緑目: 緑色の目をしたドラゴン
黒目: 黒色の目をしたドラゴン
他緑目: あるドラゴンXから見た時の緑色の目をしたドラゴン。
他黒目: あるドラゴンXから見た時の、黒色の目をしたドラゴン
※ 他緑目と他黒目にはドラゴンX自身は含まない

この場合、以下が常に成り立ちます。

緑目+黒目=100
他緑目+他黒目=99 (∵ドラゴンX自身は除くため)

それでは上記のアプローチで、場合分けをしていきたいと思います。

ケースNoドラゴンXの視界に映る緑目の数島にいる緑目の数タイミングドラゴンXの行動島を飛び立った数解説
0-1-101初日飛び立つ1匹<ドラゴンXの行動>島には少なくとも1匹以上の緑目がいるはずだがドラゴンXの視界に映る自分以外のドラゴンは全員黒目。したがって、ドラゴンXは自分が唯一の緑目だと分かるため初日に島から飛び立つ。
1-1-111初日様子見1匹<想定>ドラゴンXの視界には1匹の他緑目がいる。もし他緑目以外に緑目がいない場合(島に黒目99匹、緑目1匹の場合)、上記0-1-1と同じロジックで他緑目は初日に1匹で島を飛び立つはず。
一方、ドラゴンX自身が緑目だった場合、他緑目の視界にも1匹の緑目(ドラゴンX)が映っている。その場合、他緑目は黒目98匹、緑目1匹を見た段階では自分の目の色が分からないため初日は様子見するはず。
<ドラゴンXの行動>上記理由により、他緑目の初日の行動を見るまで自分の目の色が分からないドラゴンXは初日は様子見する。
<他緑目の行動>島にいる緑目の数が1匹の場合、0-1-1と同じロジックで緑目が1匹で島を飛び立つ。
1-2-112初日様子見0匹<想定>上記1-1-1と同じ。
<ドラゴンXの行動>上記1-1-1と同様、他緑目の初日の行動を見るため様子見。
<他緑目の行動>ドラゴンXと同様、ドラゴンX(=緑目)の初日の行動を見るため様子見。
1-2-2122日目飛び立つ2匹<ドラゴンXの行動>初日に1匹しかいない他緑目が飛び立たず様子見をしていたことから自分が緑目だと分かったため、2日目に島を飛び立つ。
<他緑目の行動>ドラゴンXと同様、自分が緑目と分かったため島を飛び立つ。
2-1-122初日様子見0匹<想定>Xの視界には2匹の他緑目がいる。もしX自身が黒目の場合(島に黒目98匹、緑目2匹の場合)、上記1-2-1と1-2-2から分かるように、初日は緑目2匹とも様子見をし、2日目に2匹とも飛び立つはず。
他方、X自身が緑目で島に3匹緑目がいる場合、他の緑目の視界にも緑目が2匹見えていて、2日目の段階では自分の目の色が確定しないため、2日目も様子見するはず。もし2匹の他緑目が2日目も様子見していたらドラゴンXは自分が緑目だと分かる。
<ドラゴンXの行動> 上記理由により、他緑目の2日目の行動を見るまで自分の目の色が分からないため、ドラゴンXは初日は様子見する。
<他緑目の行動>ドラゴンXと同様、自分以外の緑目の2日目の行動を見るまで自分の目の色が分からないため様子見する。
2-1-2222日目様子見2匹<ドラゴンX>他緑目の2日目の行動を見ないと自分の目の色が分からないため、2日目も様子見する。
<他緑目の行動>他緑目の視界には1匹の緑目しか見えていない。上記1-2-2と同じロジックで自分が緑目だと分かったため他緑目は2匹同時に島を飛び立つ。
2-2-123初日様子見0匹<想定>上記2-1-1と同じ。
<ドラゴンXの行動>視界には2匹の他緑目が見えている。2日目の他緑目2匹の行動を見るまで自分の目の色が分からないので様子見する。
<他緑目の行動>ドラゴンXと同様、自分以外の緑目2匹の2日目の行動を見るまで自分の目の色が分からないので様子見する。
2-2-2232日目様子見0匹<ドラゴンXの行動>上記2-2-1と同じ理由で様子見。
<他緑目の行動>上記2-2-1と同じ理由で様子見。
2-2-3233日目飛び立つ3匹<ドラゴンXの行動>視界に他緑目は2匹しかいないのにその2匹が2日目に島を飛び立っていない。すなわち、他緑目の目にも緑目のドラゴンが2匹見えていることになる。つまり、自分が緑目であることが分かったため、3日目にドラゴンXは島を飛び立つ。
<他緑目の行動>他緑目2匹もドラゴンXと同じロジックで自分達が緑目だと分かったため、3日目に島を飛び立つ。

以上を繰り返していくと、
ドラゴンXの視界にk匹の緑目のドラゴンがいた場合、k日目にk匹の緑目のドラゴンが一斉に飛び立てばドラゴンXは自分が緑目ではないことが分かります。
反対にk日目に1匹もドラゴンが飛び立たなかった場合は、ドラゴンXは自分が緑目であることが分かるので、k+1日目にドラゴンXを含むk+1匹のドラゴンは島を一斉に飛び立つことになります。

つまりドラゴンXの視界に99匹のドラゴン(k=99)がいた場合、99日目に自分以外のドラゴンが一斉に飛び立たなかった時点で自分も緑目だと分かるので、ドラゴンたちは100日目に一斉に島を出ることになります。

コメント

タイトルとURLをコピーしました