四天王問題

twitter で面白げな問題が流れていたので、やってみたついでに解説してみたりする。
多分他にもやってる人がいそうだけど。
問題は次のようなもの。読みやすいように改行を入れてある。

A「Dがやられたようだな…」
B「ククク奴は四天王でも最弱…」
C「Bは私よりも強い」
A「私は最強ではないが最弱でもない」
B「私はAより強いぞ」
C「四天王NO.3は嘘つき」
A「私はCよりも強い」 

問:四天王を強い順に並べよ。但し正直者は真実、嘘つきは嘘しか言わないものとする。


出典: 死後強まるツイート on Twitter: "A「Dがやられたようだな…」B「ククク奴は四天王でも最弱…」C「Bは私よりも強い」A「私は最強ではないが最弱でもない」B「私はAより強いぞ」C「四天王NO.3は嘘つき」A「私はCよりも強い」 問:四天王を強い順に並べよ。但し正直者は真実、嘘つきは嘘しか言わないものとする。"

以後の解説のために、残された四天王たちの発言に番号を振る。

  1. A「Dがやられたようだな…」
  2. B「ククク奴は四天王でも最弱…」
  3. C「Bは私よりも強い」
  4. A「私は最強ではないが最弱でもない」
  5. B「私はAより強いぞ」
  6. C「四天王NO.3は嘘つき」
  7. A「私はCよりも強い」 

さて、解法のキーは 6.のC発言。誰が「NO.3の嘘つき」であるかを最初に突き止める必要がある。

  • CをNO.3と仮定: 6.の発言自体が深刻な矛盾を来たすため、C自身がNO.3であることはありえない。棄却。
  • DをNO.3と仮定: A,B,C それぞれの発言は全て真となるが、Bによる2.の発言が真となるとD.は最弱のNO.4でなければならず、矛盾する。よって今は亡きDがNO.3であることはない。棄却。
  • AをNO.3と仮定: 1.と4.そして7.が嘘ということになり、Dはまだやられておらず生きていることになるが、AはNO.1もしくはNO.4でなければならないため、仮定と矛盾する。棄却。
  • BをNO.3と仮定: この仮定だけが矛盾を来たさない。

よって、「NO.3の嘘つき」はBということになる。
Bの発言を嘘として改めて条件を書き出すと以下の通り。

  1. Dはやられた。
  2. Dは四天王の中で最弱ではない
  3. BはCよりも強い
  4. Aは最強ではないが最弱でもない
  5. BはAより弱い
  6. 四天王NO.3の嘘つきはBだった(解決済み)
  7. AはCよりも強い 

ここにおいて、3.と4.だけでもうAとCの序列は確定してしまう。

  • BはCより強く、BがNO.3だとすればCの収まるべき場所はNO.4しかない。(3.より)
  • Aは最強でも最弱でもないためNO.2もしくはNO.3ということになるが、NO.3はBであるため自動的にNO.2となる。

ここでもう消去法的に、実はやられたDが最強のNO.1だったことになるが、
他の条件がこの序列に矛盾しないかを確認してみる。

推測されている序列は D > A > B > C

  • B > C (3.より)
  • A > B (5.より)
  • A > C (7.より)

となり、推測された序列に間違いは見られない。

ということで、正解は、

答. D - A - B - C

となる。


…最強の一角たるDを失った四天王の今後が危ぶまれる。



【追記】

コメントには書いたが、上の推論で考慮していない可能性があるので、それについての検証を追記しておく。それは、

  • 6.の発言者であるC自身がNO.3ではないが嘘つきである場合
  • 嘘つきが一人だけではない場合

の二つ。


まず、Cが嘘つきだった場合に6.の発言が矛盾するのは、CがNO.3であった場合だけである。CがNO.3以外の序列にいて、なおかつ嘘つきである場合「NO.3は嘘つき」というCの発言自体は矛盾を含まない。

このケースについて検証してみると、

  • B発言の2.が真となるのでNO.4はDで確定
  • Cは嘘つきであるという仮定から、6.よりNO.3は嘘つきであってはならないことになる。NO.4はDで確定しているため、Cは残されたNO.1かNO.2でなければならない。
  • 7.は真となるため、Cの上位にAがいなければならない。この条件を満たすためには、NO.1にAを据え、NO.2にCが収まる以外ありえない。
  • しかし、4.が真であればAが最強のNO.1であってはならない。

以上より、「C自身がNO.3ではない嘘つき」である可能性は棄却される。


もう一つの、嘘つきが一人だけではない場合についても検証せねばならない。嘘つきが一人だけでない場合、考えられる可能性は下記の三つとなる。

  • 全員が嘘つきである場合
  • 4人中3人が嘘つきである場合
  • 4人中2人が嘘つきである場合

このうち、「全員が嘘つきである場合」については、Cも勿論嘘つきということになり、発言6.が二律背反に陥る(全員が嘘つきであるため、誰をNO.3に据えても6.は真実となり、Cも嘘つきであるという仮定と矛盾する)。このため、全員が嘘を言っている可能性は棄却される。


残る二つの可能性だが、検証の手間を最小限にするため、下記の事実に注目する。

  • 4人中3人が嘘つきであるのは、4人中1人だけが正直であるのと同義
  • 4人中2人が嘘つきであるのは、4人中2人が正直であるのと同義
  • 四天王の会話全体を通じて、Dは一切発言していない。

ここから、「嘘つきが2人の場合」についてはこう考える。

  • 嘘つき2人のうち一人がDであるならば、残る3人のうち1人だけが嘘つきであるのと同じ
  • 嘘つき2人がDを含まないならば、正直者2人のうち1人がDであるのと同じ
  • そして正直者2人のうち1人がDであるならば、残る3人のうち1人だけが正直者であるのと同じ

そうなると「4人のうち3人が嘘つき(=1人だけが正直者)」という仮定のうち、矛盾しないものがあるかだけが問題となる。この可能性が全て棄却されれば、本文中の前提が成立する。

  • Aを正直者と仮定: 6.が偽となるのでNO.3は嘘つきではないAとなる。7.よりNO.4はCと推測されるが、B発言の5.は偽なのでBもNO.4となり、矛盾する。棄却。
  • Bを正直者と仮定: 6.が偽となるのでNO.3は嘘つきではないBとなる。2.は真であるのでDはNO.4に確定、4.は偽なのでAは最強か最弱だがNO.4はDで確定なのでAはNO.1となる。しかしB発言の5.を真とすればNO.1のAより強くなければならず矛盾する。棄却。
  • Cを正直者と仮定: 6.は真となるのでCはNO.3ではなくなる。3.は真、5.と7.は偽となるが、3.と5.より A-B-C の序列が出来上がるものの、この序列が7.を偽とした条件と矛盾する。棄却。
  • Dを正直者と仮定: 会話文の全てが偽となる。6.を偽とすればDは正直者であるのでNO.3で確定。3. 5. 7.を全て偽とすれば、他の三人については C-A-B という序列が推測される。NO.3はDであるので、C-A-D-B となるが、4.は偽であるので、AはNO.1かNO.4でなければならず矛盾する。棄却。

以上、「嘘つきが3人(=誰か1人だけが正直者)である場合」の可能性は全て矛盾し、棄却される。


参考までに嘘つきが二人の場合は、

  • AとBが嘘つき = Cだけが正直者
  • AとCが嘘つき = Bだけが正直者
  • AとDが嘘つき = Aだけが嘘つき
  • BとCが嘘つき = Aだけが正直者
  • BとDが嘘つき = Bだけが嘘つき
  • CとDが嘘つき = Cだけが嘘つき

と同じ結果となる。
Dは会話に参加していないので一切の情報をもたらしておらず、嘘つきだろうが正直者だろうが影響しない。


結論としては「BがNO.3の嘘つき」で「AとCは正直者」である場合だけが矛盾なく序列を説明できることになる。


【さらに追記】

…いや、まった。


「Bが嘘つき」「AとCが正直者」でなおかつ「Dも嘘つき(だった)」場合については、ちょっと条件が異なるかもしれない。
NO.3がBではなくDかもしれず、なおかつB発言の2.が偽となるからだ。

  • 6.の「NO.3の嘘つき」をDと仮定する。
  • なおかつBもまた嘘つきであると仮定する。
  • B発言の2.は偽なので、DがNO.4ではないとなり、ここは矛盾しない。
  • A発言の4.は真なので、AはNO.2もしくはNO.3となるが、NO.3はDと仮定しているため、AはNO.2となる。
  • B発言5.は偽なので、AはBより強い。A以下の序列で空いているのはNO.4だけなのでBはNO.4となる。
  • しかし、C発言3.は真であり、NO.4のBがCより強くなければならず矛盾する。

以上により、「嘘つきがBとDの二人であり、NO.3がD」の可能性は棄却される。

同様に、嘘つきがA,CのいずれかとDという二人の組み合わせの場合、

  • AとDの場合: NO.3が嘘つきのどちらかになるが、AがNO.3の場合は検証済み。DがNO.3の場合、B発言2.は真であり、DはNO.4でなければならず仮定と矛盾する。棄却。
  • CとDの場合:C発言は偽となり、NO.3は正直者確定となる。ただしDが嘘つきであることは「CがNO.3以外の嘘つきだった場合」と競合する前提が無いため、矛盾することは検証済み。棄却。

…ふぅ、これで全部か?

【また追記】

やっぱり嘘つきが2人のケースも検証しないとダメらしい。

2人のうち2人がDであるケースについては検証したが、他の3人から嘘つきを2人選ぶことで「Dが正直である」ことによりDを配置できないポジションが出てくるので。

Dが嘘つきの片割れであるケースは検証済みなので、今度はDが正直者の片割れだった場合三通りを検証すればいい。

  • DとAが正直者: 嘘つきはBとC。C発言6.が偽となりNO.3は正直者確定なのでDかAのどちらかになる。3. 5. は偽、7.は真なので、序列はA-C-Bだが、AをNO.3に据えた場合その下にはNO.4しかいない。DをNO.3に据えた場合、A発言4.は真なのでAはNO.2確定となるが、NO.3をDが占めるため空きはNO.4しかない。いずれもCとBが収まらず矛盾する。棄却。
  • DとBが正直者: 嘘つきはAとC。C発言6.が偽となりNO.3は正直者確定なのでDかBのどちらかになる。B発言2.は真なのでNO.4はD確定。そうなるとNO.3にはB以外が収まることはできない。A発言4.は偽だがNO.4はDなので、AはNO.1、残るCはNO.2となるが、B発言5.を真とすればBはNO.1であるはずのAより強いことになり矛盾する。棄却。
  • DとCが正直者: 嘘つきはAとB。3が真、5.と7.が偽となるが、これらから序列を導くことができず矛盾する。棄却。

…結局全部検証することになったが、嘘つきが二人の場合も全ケースに矛盾が見られるので棄却。


よって、「Bだけが嘘つきで、他の3人は正直者」のケースだけが成立し、回答となる序列は D-A-B-C 以外にはあり得ないことになる。

※【さらに追記】あ、Dは嘘つきであってもいいけどNO.3がBであれば成立するや。詳細は次の記事参照。

やはりやられたDが最強だったわけで、この四天王は早急に対策を練るべきだ。



…やっちまってから言うのもなんだけど、3./5./7. に真偽を当てはめて、序列が成立しないケースについては最初から検証する必要なかったなぁ。