無料で手軽に使える4つの生成AIを比較するシリーズの第5回です。今回は、論理的思考力が試される問題にチャレンジしてもらいます。
※本投稿には、アフリエイト広告を表示しています。
ChatGPT vs Gimini vs Perplexity vs Copilot
生成AIを使った様々なサービスが提供されています。ガッツリ使うには、当然、有料で使うしかありません。しかし、お試し的に、無料で割と手軽に使える生成AIがあります。
生成AIの論理的思考力は?
今回は、生成AIの論理的思考力を試してみましょう。ということで、ビジネス書でベストセラーとなっている野村裕之さんの「頭のいい人だけが解ける論理的思考問題」(ダイヤモンド社)を参考に、エピメニデスのパラドックスの問題を生成AIに出題してみます。
入力するプロンプト
ある村には、以下の4つのタイプの人間がいる。
①「いつも正直者」は、いつも真実を語る。
②「ごまかす正直者」は、いつも真実を語るが、自分が犯人の場合は「自分は無実だ」と嘘をつく。
③「いつも嘘つき」は、いつも嘘をつく。
④「正義の嘘つき」は、いつも嘘をつくが、自分が犯人の場合は「自分は犯人だ」と真実を語る。
この村で、空き巣に入られる事件が発生した。
目撃者によると犯人は1人。
その時間に犯行が可能だったA、B、C3人の証言は、以下のとおり。
A:「私は無実だ。Bが犯人だ。Bは正直者だ」
B:「私は無実だ。Aが犯人だ。Cは私とは違うタイプだ」
C:「私は無実だ。Aが犯人だ」
空き巣に入ったのは、誰か?理由も併せて答えて。
ChatGPTの回答
こういうのは、推論をした方がいいのかな?と思いました。なので、o3-miniで推論の上、回答してもらいます。

お察しのとおり、記事を書いてから公開まで、ちょっと時間経ってます
以下のような割り当てが整合的になります。
結論:空き巣に入ったのはAです。
【理由の詳細】
- 犯人は1人であり、無実の者は必ず「私は無実だ」と言い、必ず真実を述べる(タイプ①または②)
そのため、A、B、Cのうち2人は真実を語る(無実者)と考えます。- 各人の証言の内容
- A:「私は無実だ。Bが犯人だ。Bは正直者だ」
「正直者」とは、ここでは「いつも正直者(タイプ①)」を指すと解釈します。- B:「私は無実だ。Aが犯人だ。Cは私とは違うタイプだ」
- C:「私は無実だ。Aが犯人だ」
- 無実者は必ず真実を話すので、BとCが無実の場合
- Bの「Aが犯人だ」とCの「Aが犯人だ」はどちらも一致しており、Aが犯人であることを支持します。
- また、Bは「Cは私とは違うタイプだ」と述べています。無実者はタイプ①か②ですが、もしBがタイプ②なら、Cはタイプ①(=「正直者」)でなければならず、これがAの「Bは正直者だ」(=Bがタイプ①である)という発言と矛盾します。
- そこで、Aが犯人であると仮定します
- 無実者はBとCであり、彼らはそれぞれ必ず真実を語ります。
- Bは「Aが犯人だ」と正しく証言し、また「Cは私とは違うタイプだ」とも述べており、もしBがタイプ②ならCはタイプ①(=正直者)でなければなりません。
- Cも「Aが犯人だ」と真実を述べています。
- Aは犯人ですから、通常は無実者なら「私は無実だ」と言うところを、犯人の場合は特定のタイプにより違った扱いとなります。
- タイプ②(ごまかす正直者)の場合、犯人であれば「自分は無実だ」と嘘をつきますが、その他の発言は真実となるはずです。しかし、Aが「Bが犯人だ」と真実であれば、Bが犯人になってしまい矛盾します。
- そこで、Aは**「いつも嘘つき」(タイプ③)**であると考えると、すべての発言が嘘になります。
- 「私は無実だ」→嘘(実際は犯人)
- 「Bが犯人だ」→嘘(実際はBは無実)
- 「Bは正直者だ」→嘘(ここでは「正直者」はタイプ①を意味するため、Bはタイプ②とすれば嘘になります)。
以上の振り分けで矛盾がなく収まります。
Geminiの回答
高度の推論機能ということなので、モデルは2.0Flash Thinkingを使ってみました。

お察しのとおり…以下略
犯人はBである。理由は以下の通り。
推理プロセス
- Bが犯人だった場合:
- Bは「ごまかす正直者」か「正義の嘘つき」のどちらかである。
- Bが「ごまかす正直者」の場合、「私は無実だ」と嘘をつき、「Aが犯人だ」と真実を語り、「Cは私とは違うタイプだ」と真実を語る。
- Bが「正義の嘘つき」の場合、「私は無実だ」と嘘をつき、「Aが犯人だ」と嘘をつき、「Cは私とは違うタイプだ」と嘘をつく。
- Bが「ごまかす正直者」の場合:
- Bの証言:「私は無実だ(嘘)。Aが犯人だ(真実)。Cは私とは違うタイプだ(真実)。」
- Aの証言:「私は無実だ(真実)。Bが犯人だ(真実)。Bは正直者だ(嘘)。」→ Aは「いつも正直者」である。
- Cの証言:「私は無実だ(嘘)。Aが犯人だ(真実)。」→ Cは「いつも嘘つき」である。
- Bが「ごまかす正直者」、Aが「いつも正直者」、Cが「いつも嘘つき」であれば、Bの最後の証言「Cは私とは違うタイプだ」は真実である(「ごまかす正直者」と「いつも嘘つき」は異なるタイプ)。
- この場合、全ての証言と人物タイプが矛盾しない。
- Aが犯人だった場合:
- Aは「ごまかす正直者」か「正義の嘘つき」のどちらかである。
- Aが「ごまかす正直者」の場合、「私は無実だ」と嘘をつき、「Bが犯人だ」と真実を語り、「Bは正直者だ」と真実を語る。
- Aが「正義の嘘つき」の場合、「私は無実だ」と真実を語り、「Bが犯人だ」と嘘をつき、「Bは正直者だ」と嘘をつく。
- Aが「ごまかす正直者」の場合:
- Aの証言:「私は無実だ(嘘)。Bが犯人だ(真実)。Bは正直者だ(真実)。」→ Bは「いつも正直者」である。
- Bの証言:「私は無実だ(真実)。Aが犯人だ(真実)。Cは私とは違うタイプだ(?)。」
- Cの証言:「私は無実だ(真実)。Aが犯人だ(真実)。」→ Cは「いつも正直者」である。
- Bが「いつも正直者」、Cが「いつも正直者」の場合、Bの最後の証言「Cは私とは違うタイプだ」は嘘になる。しかし、Bは「いつも正直者」なので嘘はつかないため矛盾する。
- Aが「正義の嘘つき」の場合:
- Aの証言:「私は無実だ(真実)。Bが犯人だ(嘘)。Bは正直者だ(嘘)。」→ Bは「いつも嘘つき」である。
- Bの証言:「私は無実だ(?)。Aが犯人だ(?)。Cは私とは違うタイプだ(?)。」
- Cの証言:「私は無実だ(真実)。Aが犯人だ(真実)。」→ Cは「いつも正直者」である。
- Bが「いつも嘘つき」、Cが「いつも正直者」の場合、Bの証言「私は無実だ」は嘘、「Aが犯人だ」は嘘、「Cは私とは違うタイプだ」は真実となる。しかし、Aの証言「Bは正直者だ」が嘘であることと矛盾する(「いつも嘘つき」は正直者ではない)。
- Cが犯人だった場合:
- Cは「ごまかす正直者」か「正義の嘘つき」のどちらかである。
- Cが「ごまかす正直者」の場合、「私は無実だ」と嘘をつき、「Aが犯人だ」と真実を語る。
- Cが「正義の嘘つき」の場合、「私は無実だ」と真実を語り、「Aが犯人だ」と嘘をつく。
- Cが「ごまかす正直者」の場合:
- Cの証言:「私は無実だ(嘘)。Aが犯人だ(真実)。」→ Aは「いつも正直者」である。
- Aの証言:「私は無実だ(真実)。Bが犯人だ(嘘)。Bは正直者だ(嘘)。」→ Bは「いつも嘘つき」である。
- Bの証言:「私は無実だ(真実)。Aが犯人だ(嘘)。Cは私とは違うタイプだ(真実)。」
- この場合、Bの証言「私は無実だ」は真実、「Aが犯人だ」は嘘、「Cは私とは違うタイプだ」は真実となる。Bが「いつも嘘つき」であることと矛盾する(「いつも嘘つき」は真実を語らない)。
- Cが「正義の嘘つき」の場合:
- Cの証言:「私は無実だ(真実)。Aが犯人だ(嘘)。」
- Aの証言:「私は無実だ(?)。Bが犯人だ(?)。Bは正直者だ(?)。」
- Bの証言:「私は無実だ(?)。Aが犯人だ(?)。Cは私とは違うタイプだ(?)。」
- Cが「正義の嘘つき」の場合、「私は無実だ」と真実を語るので矛盾する。
上記より、矛盾なく全ての証言と人物タイプが合致するのは、Bが犯人で「ごまかす正直者」の場合のみである。
Perplexityの回答
パプるでお馴染みのPerplexityの回答です。
解答
犯人はBです。以下の論理プロセスで導き出せます:
証言分析
- Aの主張:
- 「私は無実」→ 真実なら①か②
- 「Bが犯人」→ 真実ならBが犯人
- 「Bは正直者」→ Bが①か②なら成立
- Bの主張:
- 「私は無実」→ 嘘ならBが犯人(②/④)
- 「Aが犯人」→ 矛盾発生ポイント
- 「Cは違うタイプ」→ Bのタイプ判別に重要
- Cの主張:
- 「私は無実」→ ④なら犯人時のみ真実
- 「Aが犯人」→ 嘘ならCが③/④
矛盾点の特定
- Aが犯人仮定:
Bの「Cは私と違うタイプ」が成立せず、Bが嘘つきなら「Aが犯人」が真実になる矛盾。- Bが犯人仮定:
Bが②(ごまかす正直者)の場合:Aが①(常に正直)なら:
- 「私は無実」→ 犯人なので嘘(成立)
- 「Aが犯人」→ 嘘(成立)
- 「Cは違うタイプ」→ Bが②ならCは③/④(成立)
- 「Bが犯人」「Bは正直者」が同時に成立可能(②は正直者のサブタイプ)
- Cが犯人仮定:
④(正義の嘘つき)の場合「私は無実」が真実になり矛盾。③(常に嘘つき)なら「無実」の嘘でCが犯人になるが、物理的に不可能。タイプ判定
- A:
全ての主張が真実 → ①(常に正直者)- B:
犯人かつ「Aが犯人」と嘘 → ②(ごまかす正直者)- C:
「Aが犯人」が嘘 → ③(常に嘘つき)
(※④の場合「無実」発言が矛盾するため除外)結論
Bが②(ごまかす正直者)として犯人と判定できます。Aの証言が全て真実となり、Bの証言もタイプ特性と整合し、Cの嘘発言と矛盾しません。
Copilotの回答
最後は、Copilotの回答です。
この問題は論理パズルの一種で、各人物の発言と性格タイプを考慮しながら分析していきます。
まず、A、B、Cの発言を整理します:
- A:「私は無実だ。Bが犯人だ。Bは正直者だ」
- B:「私は無実だ。Aが犯人だ。Cは私とは違うタイプだ」
- C:「私は無実だ。Aが犯人だ」
次に各性格タイプに基づいて分析します:
- いつも正直者は、常に真実を語ります。
- ごまかす正直者は、真実を語りますが、自分が犯人なら「自分は無実」と嘘をつきます。
- いつも嘘つきは、常に嘘をつきます。
- 正義の嘘つきは、常に嘘をつきますが、自分が犯人の場合は「自分が犯人」と真実を語ります。
推理のプロセス:
- Aの発言について: Aが「Bが犯人だ」と言い、「Bは正直者だ」と述べています。矛盾しています。もしBが正直者なら、Bが犯人であることはありえません。
- Bの発言について: Bは「Aが犯人だ」と述べていますが、「Cは自分とは違うタイプ」と付け加えています。ここにはタイプについてのヒントが隠れています。
- Cの発言について: Cは「Aが犯人だ」と述べています。
最終的な結論:
- Aが「Bは正直者だ」と述べていますが、この矛盾を考慮すると、Aは嘘つきタイプ(③または④)のいずれかです。
- Bは「Cは私とは違うタイプだ」と述べていますが、もしBが正直者なら、Cは嘘つきに該当します。
- Cの「Aが犯人だ」という発言は真実である可能性が高いです。これは、「正義の嘘つき」の性格が一致する場合、真実を語ります。
よって、犯人はAです。理由としては、他者の証言の整合性と矛盾を考慮した結果、Aが犯人である可能性が最も高いからです。
雑感
最後は、いつものとおり雑感です。
犯人がAと回答したのがChatGPT・Copilot。犯人がBと回答したのがGeimi・Perplexity。果たして、正解は…どっちも不正解です。
実は、Perplexityが推論中に、表示されるプロセスで、すべてで矛盾が生じるみたいなことが、チラっと表示されてました。そうなんです。Aが4つの内のどのタイプでも矛盾するんです。
問題文である「入力するプロンプト」をもう一度、よく読んでください。ある人を忘れてませんか?A、B、C以外に村の人間いません?

えっ?他に誰かいた?

もう一人いるじゃない。
ちなみに、犯人はAとBだから。

言っちゃうんだ!?
そう、犯人はAとBが正解です。なんで!?と気になった人は、ぜひ、この本を読んでみて下さい。
♪Mr.Children「アート=神の見えざる手」(アルバム:miss you収録)