いものやま。

雑多な知識の寄せ集め

「3人の嘘つきのパラドックス」について考えてみた。

f:id:yamaimo0625:20200311144523p:plain

FGOのイベントで面白い問題が出てたので、それについて考えてみた。

「3人の嘘つきのパラドックス

ここでいう「3人の嘘つきのパラドックス」(※一般にそういう名前があるわけではない)とは、次のようなもの:

A, B, Cという3人がいるとする。
この3人は全員が「正直者は自分だけで、他の2人はどちらも嘘つきだ」と言っている。
正直者は誰だろうか?

FGOのシナリオでは、これは次のようにパラドックスになると書かれていた:

Aが正直者だった場合、BとCは嘘つきになる。
すると、Bの発言は嘘なのでAとCは正直者となり、Cが嘘つきというのに矛盾する。
一方、Aが嘘つきだった場合、BとCは正直者となる。
すると、Bの発言は正しいのでAとCは嘘つきとなり、Cが正直者というのに矛盾する。
Aが正直者と仮定しても嘘つきと仮定しても矛盾するので、これはパラドックス

さて、どうしたものか・・・というところで、これは単なるなぞなぞだと解決の道筋が示される。
それについてはイベントを実際にプレイして欲しい。(FGOはいいぞ)

けど、自分がプレイしてて思ったこと。

これ、そもそもパラドックスになってないじゃん。

そう、論理的に考えれば、これは全然パラドックスになってない。
矛盾なんか起きない。
でも、論理ができないとこんな間違いもしちゃうんだなぁ、と思ったり。

で、ちょっと考えれば分かることなので、さすがに指摘してる人もたくさんいるんだろうなぁとツイッターを検索してみたんだけど、自分の他に指摘してる人がいない・・・?
いや、本筋には関係ないとはいえ、それなりにツッコミが入ってると思ったんだけど・・・

「AかつB」の否定

この問題のポイントは、「AかつB」の否定はなんなのか、ということ。

「AかつB」の否定は、「Aでない、かつ、Bでない」ではなく、「Aでない、または、Bでない」となる。
(ド・モルガンの法則)

たとえば、「Aは嘘つき、かつ、Bも嘘つき」という発言が、どういったときに正しく、どういったときに間違いと見なされるかを考えてみるといい。

A B Aは嘘つき、かつ、Bも嘘つき
嘘つき 嘘つき 正しい
嘘つき 正直者 間違い
正直者 嘘つき 間違い
正直者 正直者 間違い

見ての通り、AかBの少なくとも一方が正直者なら「Aは嘘つき、かつ、Bも嘘つき」という発言は間違い(=嘘)となる。

つまり「AもBも嘘つき」が嘘なら、正しいのは「AもBも正直者」ではなく、「AかBの少なくとも一人は正直者」。

それを踏まえて上記のパラドックスの説明を眺めると、こうなる:

Aが正直者だった場合、BとCは嘘つきになる。
すると、Bの発言は嘘なのでAかCの少なくとも一人は正直者となり、実際Aは正直者。
Cについても同様なので、矛盾はしない。(Aだけが正直者)
一方、Aが嘘つきだった場合、BかCの少なくとも一人は正直者となる。
Bが正直者の場合、AとCは嘘つきとなり、矛盾しない。(Bだけが正直者)
また、Cが正直者の場合も同様に矛盾しない。(Cだけが正直者)
このように、誰が正直者かは定まらないが、矛盾は発生せず、正直者が1人だけいると分かる。

見ての通り、パラドックスになんかならない。

そして面白いのは、誰が正直者なのかは分からないけど、正直者は確実に1人いると定まること。

「n人の嘘つきのパラドックス

となれば、やっぱり一般化して考えたくなるのが数学をやってる人の性。

まず思い浮かぶのは、じゃあ、3人じゃなくてn人だとどうなんだろう?ということ。

 n人いるとする。( n \ge 2
全員が「正直者は自分だけで、他の全員は嘘つきだ」と言っている。
正直者は何人いるだろうか?

これも「全員嘘つき」の否定が「正直者もいる」だということに気をつければ、1人というのが答えだと分かる。
ある人が正直者だとしたら、他の全員は嘘つきとなり、嘘つきは「他の全員は嘘つき」という嘘をついていることになる。
そして、仮に正直者が2人(以上)いると仮定すると矛盾するので、正直者はぴったり1人だと分かる。

さらに一般化すると、これは自分を含めて正直者が何人いるか、という言及にできる。
しかも、「ぴったり」「以上」「以下」の3パターンを考えられそう:

 n人いるとする。( n \ge 2
全員が「正直者は自分を含めて m人だ」と言っている。( 1 \le m \le n
正直者は何人いるだろうか?

 n人いるとする。( n \ge 2
全員が「正直者は自分を含めて m人以上だ」と言っている。( 1 \le m \le n
正直者は何人いるだろうか?

 n人いるとする。( n \ge 2
全員が「正直者は自分を含めて m人以下だ」と言っている。( 1 \le m \le n
正直者は何人いるだろうか?

ちゃんと確かめてないけど、これらのどれもが「その発言通りが正しい」となってそう。

ただ、ここで mの最小値を0にするーーつまり全員が「全員嘘を言っている」と言っているケースを許すと、話が急に変わってくる。
この場合はパラドックスが発生する・・・

他にもいろいろ変形が考えられそうなので、どういう場合にはパラドックスが発生するのか考えてみるのも面白そう。

今日はここまで!

Fate/Grand Order

Fate/Grand Order

  • Aniplex Inc.
  • ゲーム
  • 無料