難問の論理・数理パズルに挑戦しよう【赤目の村】

雑記・体験談
ラビまる
ラビまる

ハーバード大学で作られた論理パズルをアレンジした、シンプルながら論理の奥深さを感じられる問題です。
自力で解けたあなたは、きっとすばらしい想像力と思考力をお持ちのはず。


問題【赤目の村】

人口わずか100人のとある小さな村がある。

この村には「赤目」とよばれる真っ赤な瞳をもつ人間がいる。

また、村には次のような絶対的な掟(おきて)がある。
「自分が赤目であることを知った者は、その日の夜に自ら命を絶たなければならない」

そして実は、この村の住人は100人全員が赤目である。

しかし、村には鏡など自分の姿を自分で確認できるようなものは一切なく、また、村人が瞳の色についての話題を口にすることも固く禁じられている。

そのため村人たちは、自分以外の村人が赤目であることは知っているが、自分自身の瞳が何色なのかは知ることのないまま生きていることになる。

村では毎朝広場で集会を開いており、1日1度はすべての村人が顔を合わせている。

ある日、通りすがりの旅人が集会中にやってきて、村人たちの前で、

「赤目の人間がいる!」

と叫んでしまった。

さて、この村ではこれから何が起きるだろうか?

なお、すべての村人は旅人の発言を前提として極めて論理的な思考をするし、そのことを村人たちは互いに知っているものとする。
 

思考の糸口

問題の解答を紹介する前に、3つのヒントを記載しておく。

自分の力で答えにたどり着きたい方は、ヒントを参考にしながらどうぞ。

ヒント1

旅人の発言から得られた情報は、
「この村には少なくとも1人以上の赤目がいる」
ということだった。

すべての村人が、「この情報を村の全員が聞いていた」ということを共通認識している点がポイントとなる。

ヒント2

村人は自分の目の色を直接確認する手段がない。

しかし、他の村人の行動(自殺をした or しなかった)に注目すれば、推論によって得られる情報がある。

集会によって、他の村人の行動を毎日把握することができる。

ヒント3

話を単純化するために、村人の数を減らして考えてみるとわかりやすくなる。

村人が2人だけだとしたらどうなるか。3人だとどうか。

解答と解説

解答【赤目の村】

 
旅人が来てから100日目の夜に、100人すべての村人が一斉に自殺する。
 

答えの導き方

いきなり村人100人を考え出すと大変なので、まずは単純化させて、村人が2人のみの状況について考えてみる。

今回の問題を解くうえで重要なのは、「他の村人の行動(自殺した or しなかった)から得られる情報」に注目することである。

【状況1】村人が2人のケース ※自分以外に1人の赤目が見える状況

村人Aは、このように考える。
「もし私が赤目でないとすれば、旅人の発言を受けて村人Bは自身が赤目であることをすぐに確信し、初日の夜に自殺するはずだ。逆にもし2日目まで村人Bが生きていたら、私も赤目だということになる。」

このとき、村人Bもまた同じことを考える。

そして2日目の集会で顔を合わせた村人A・Bのそれぞれは、同時に自分が赤目であることを知り、2日目の夜に自殺することとなる。

続いて、村人が3人、4人となった場合を考えてみる。

【状況2】村人が3人のケース ※自分以外に2人の赤目が見える状況

村人Aはこのように考える。
「もし私が赤目でないとすれば、村人B・Cにとっては『自分以外に1人の赤目が見える状況』となるから、【状況1】のとおりの推論ができる。」
「そのため、村人B・Cは2日目の夜に同時に自殺するはずだ。逆にもし3日目まで村人B・Cが生きていたら、私も赤目だということになる。

このとき、村人B・Cもまた同じことを考える。

そして3日目の集会で顔を合わせた村人A・B・Cのそれぞれは、同時に自分が赤目であることを知り、3日目の夜に自殺することとなる。

【状況3】村人が4人のケース ※自分以外に3人の赤目が見える状況

村人Aはこのように考える。
「もし私が赤目でないとすれば、村人B・C・Dにとっては『自分以外に2人の赤目が見える状況』となるから、【状況2】の結末が再現される。」
「そのため、村人B・C・Dは3日目の夜に同時に自殺するはずだ。逆にもし4日目まで村人B・C・Dが生きていたら、私も赤目だということになる。

このとき、村人B・C・Dもまた同じことを考える。

そして4日目の集会で顔を合わせた村人A・B・C・Dのそれぞれは、同時に自分が赤目であることを知り、4日目の夜に自殺することとなる。

このように見ていくと、

「村人がN人のケースでは、N日目の夜にすべての村人が一斉に自殺する」

という規則性があることが分かる。

したがって問題となる100人の村では、100日目の夜に100人すべての村人が一斉に自殺するという結論が導けるのである。

旅人が村人たちに与えた情報とは何だったのか

突然やってきた旅人の発言をきっかけとして、100日後には村人が誰もいなくなってしまった。

しかし思えば、村人たちは最初から99人の赤目に囲まれて暮らしていたわけで、今更旅人に「赤目がいる」と言われたところで、新しく得られる情報は何もないように見える。

では旅人の発言によって何が変わったのだろうか。

たしかに現実には「 村に少なくとも1人以上の赤目がいる」ことは言われるまでもなく明らかなのだが、村人たちによる高度な推論の世界では、この情報が公表されることは重要な意味をもつことになる。

村人たちの思考をおさらいしてみると、まず「自分が赤目でない」と仮説をたて、その仮説が否定されることによって自分が赤目だということを確信している。
いわゆる背理法というやつである。

  <背理法についてはこちらの記事でも触れています。>

100人の村での推論を考える。

村人Aからは99人の赤目が見える。

村人Aが「自分は赤目でない」と仮説を立てたとき、村人Aの仮説の中の村人Bからは98人の赤目が見えるはず。

村人Aの仮説の中の村人Bもまた「自分は赤目でない」と仮説を立てるから、このとき村人Aの仮説の中の村人Bの仮説の中の村人C からは97人の赤目が見えるはず。

・・・

村人Aの仮説の中の村人Bの仮説の中の … (中略) … の仮説の中の村人X (100人目)からは赤目が一人も見えないはず。

というように、村人Aの中で仮説が仮説をよび、マトリョーシカのように突き詰められていく。

ここで、村人Aの仮説の中で最終的にたどりつく村人X(100人目)にとっては、周りに赤目が1人も見えないのだから、「 村に少なくとも1人以上の赤目がいる」事実は当たり前ではない。

旅人が「赤目がいる」と発言したことによって初めて、村人X (100人目) は自分が赤目であることを知るはずだ。と、村人Aは仮説の中でこのように考えるのである。
(これが前述の【状況1】の推論へとつながる。)

これをきっかけとして推論が展開していき、
「もし私が赤目でないとすれば、私以外の99人は99日目の夜に全員自殺するはずだ」
という結論にたどり着くことができる。

明らかな事実を口にするだけで、想像に反して大変な結末につながる。
論理の不思議さ、面白さを感じられる問題でした。


<もとにした問題はこちら>
Green eyed dragons (緑色の目をしたドラゴン)
http://mathpuzzlewiki.com/index.php/Green_eyed_dragons

コメント

  1. 通りすがりです より:

    全然自分の思ってたのと違ってたのであれですが、
    論理パズルというか、心理パズルみたいなやり方で考えちゃいました。
    てっきり私は、自分以外の99人は赤いのだから確率的には自分も赤いんじゃないかと旅人が来る以前から
    各々が感じていて、旅人が来て誰に対してでも無く赤いやつがいると指摘したら
    当然皆自分のことと思う訳で死にたくは無いのだから
    村人全員が共謀して旅人を殺していつもの生活に戻ったのかなと
    思いました。改めて論理とかじゃないですが^^;

    • ラビまる ラビまる より:

      コメントありがとうございます。
      これがホラー作品だったら、ゾクっと来るようないい展開ですね笑
      赤目の集団に命を狙われる旅人視点に立つとめちゃくちゃ怖いですし、彼らが揃って「旅人を殺してしまえばそれで解決」と考えているのもサイコっぽくていいですね!

  2. のりさん3 より:

    この問題は有名ですが、誰が回答しているんでしょうか。三匹のドラゴンで青い瞳のドラゴンがいると言われたら、確かに3日目に三匹とも自分が青だと気付くでしょう。これは、青い瞳が一匹以上というのは0匹ではないという意味が重要なのであり、この条件がきっかけで仮定上可能性がある0匹が否定されたさことにより、一匹以上だと絞られ、さらに否定されていく訳です。しかしながら100匹では、0匹ではないと言った処で仮定上でも97匹以上は間違いないという認識ですから、0匹の可能性等なく、最初から否定されてますから、カウントダウンなど起きません。カウントダウンがされるのならば、青い瞳のドラゴンはいるかもしれないという条件無しの状況でも、0匹からカウントダウンすることになりますよ。この問題は98匹以上と言わなければ分からないのです。
     また重要なことは一匹以上いるで、当日誰も自分の色が分からなかったからといって一匹が否定される訳ではないのです。仮定上でも可能性があった場合にのみ否定されカウントダウンするのです。同じような意見の方が見つからず残念です。

    • ラビまる ラビまる より:

      コメントありがとうございます。
      元はハーバード大学物理学科の配布資料にあった問題らしく、同大学が自ら解答も用意しているようです。
      (【参考】ハーバード大学Problem of the Week:https://www.physics.harvard.edu/undergrad/problems)

      以下、私の理解をお返ししたいと思います。
      長文になってしまうのですが、結論としては記事のとおりの解釈を書いています。

      >> 0匹の可能性等なく、最初から否定されてますから…(略)
      この状況自体は、”3匹のドラゴン” 以上のケースにおいては共通して言えると思います。
      3匹をA・B・Cとしたときに、A目線では緑の瞳(原題にあわせて「緑」としますね)のドラゴンが2匹いるのが確定していて、またBもCも少なくとも1匹以上は緑の瞳のドラゴンの存在を認識しているはずであることも分かります。この時点でA・B・Cの誰から見ても、緑の瞳が0匹である可能性は全員にとって排除されています。明らかに緑の瞳が1匹以上いるのに、それでも何も起きないのは、最終的に自分自身が緑の瞳であることの確証がないからですよね。
      そしてこの問題において自分が緑の瞳だと断定できる唯一の瞬間というのは、【自分が緑の瞳ではなかった場合に起きるはずのシナリオが起きなかったとき】です。

      “3匹のドラゴン” においてAが「自分は緑の瞳ではない」と仮定したとき、A目線から見たBとC(B’,C’とします)は、Aを除外した “2匹のドラゴン” のケースで捉えているはずだということが推定できます。仮定上のB’,C’もまた同様に「自分は緑の瞳ではない」と仮定し、それぞれから見た仮定上の相手方(C”,B”)にとっての “1匹のドラゴン” のケースを考えるはずです。
      Aはもちろん、「少なくとも緑の瞳のドラゴンが一匹以上いる」ことを知っています。Aの仮定の中のB’も、Aの推定によってそれを知っていることにされています。しかしAの仮定の中のB’の仮定の中のC”はそれを知らない(0匹の可能性を否定できていない)ことになりますよね。C”から見たB’やAは緑の瞳をしていないからです。そうすると確証の手がかりがなく何も起きないのが当然ですので、Aはそれ以上の推論ができません。
      そこで、外部からの宣言が必要となります。「『少なくとも緑の瞳のドラゴンが一匹以上いる』という情報を自分も含めたこの場の全員が共有している」という認識が生じてはじめて、C”が1日目に緑の瞳を自覚して雀に変わる必然性が生まれ、そのシナリオが起きなかったので背理法的にB’(とC’)が2日目に雀に変わる必然性が生まれ、そのシナリオが起きなかったので背理法的にA(とBとC)が3日目に雀に変わる必然性が生まれる、という推論の連鎖が成り立つわけです。
      実際のCは初めから「1匹以上」を知っているのに、仮定が深くなるとそうではなくなるというのがポイントです。

      これは4匹以上のケースでも同様です。A・B・C・DのうちAが「自分は緑の瞳ではない」と仮定したときのB’とC’とD’は、”3匹のドラゴン” と全く同じ推論で3日目に雀に変わるはずです。それが起きないのは、仮定が間違っていてA自身も緑の瞳である場合だけです。
      “4匹のドラゴン” においても、「少なくとも2匹以上いる」とまで宣言する必要はありません。”3匹のドラゴン” が「少なくとも1匹以上」の条件で成立するのだから、4匹目のドラゴンは4日目に自動的に【自分が緑の瞳ではなかった場合に起きるはずのシナリオが起きなかったとき】を判断することができます。
      5匹以上に増えても推論の連鎖はB’,C”,D”’,E””…と続いていき、最終的には必ず “3匹のドラゴン” のケースまでさかのぼって行き着くので、総数に関わらず「少なくとも1匹以上」の宣言で十分です。総数が増えた分、結論が出るまでの日数は延びていきますが。

      逆に考えて “100匹のドラゴン” において「少なくとも100匹以上いる」と宣言した場合を想定すると、推論が短縮されて1日目ですべてのドラゴンが雀になることは感覚的にも分かりやすいですよね。自分が緑の瞳ではない可能性がいきなりなくなるからです。
      もし「少なくとも99匹以上いる」と宣言した場合なら、1日目は自分以外の99匹だけが緑で自分は違う可能性があるので、他のドラゴンがすべて雀に変わるのを待つほかありません。2日目を迎えることで【自分が緑の瞳ではなかった場合に起きるはずのシナリオが起きなかったとき】が確定し、ここですべてのドラゴンが雀になります。
      もしコメントいただいたように「少なくとも98匹以上いる」と宣言したならば、それが3日目になると考えられます。このときのAは「もし自分が緑ではないと仮定すると、BはAとB自身以外の98匹だけが緑である可能性を考えて、2日目に雀になるだろう」と推論できるからです。その仮説が崩れるのは3日目です。
      同じ要領で、「少なくとも97匹以上いる」なら4日目、「少なくとも96匹以上いる」なら5日目 … 「少なくとも1匹以上いる」なら、やはり100日目に結論が出ることになります。

      つまりドラゴンにとって直接重要になるのは、事実として0匹の可能性があるとか、他者の目からも1匹以上が確定しているということ自体ではなく、あくまで「自分が緑の瞳ではない可能性があるか」の方です。
      それを確定させるためには「自分が緑の瞳ではないと仮定したときの他者が仮定するはずの他者が仮定するはずの…」と一旦事実から離れる方向に推論を巡らせる必要があり、その先には「仮説の中にしなかない0匹の可能性(”1匹のドラゴン” のケース)」が常に存在するので、これを否定するために「少なくとも1匹以上」の宣言がトリガーとして必要になるわけです。
      それがなければ「自分以外の全員が緑の瞳だが自分だけは違う」という可能性を何日経過しても論理的に否定できないということですね。

      すみません、非常に長くなってしまいました。
      数が多くなると「実際には存在しない仮説上のドラゴン」がネズミ算式に膨れ上がっていくので、非常にややこしく直感に反する内容だと思います。
      また疑問点等あれば、コメントいただけたらと思います。

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