ホーム >> 論理 >> 正直者か嘘つきしかいない $100$ 人の村
hide or visible

問題の説明

正直者と嘘つきの論理の問題です.この手の問題 (正直者と嘘つきが登場する問題) を初めて見た人にとっては少し手強いかもしれません.この手の問題はいろいろなバリエーションがあって面白いものが多いので,興味のある人はぜひ調べてみてほしいです.

まず,問題文にもある通り,村人は正直者嘘つきのいずれかです.村人全員が正直者かもしれないし,全員が嘘つきかもしれません.さて,あなたが十分論理的であれば,村人 $A_1〜A_{100}$ までの発言によってどの村人が正直者で,どの村人が嘘つきなのかを完全に決定することができます.

もし村人が $2$ 人だったら

上の問題が難しいと感じるようであれば,まずは村人が $2$ 人である場合を考えてみましょう.

補助問題 $1$ $2$ 人の村人が住んでいるある村では,村人は本当のことしか言わない正直者か嘘のことしか言わない嘘つきのいずれかである.$2$ 人の村人が集まってそれぞれが次のように言った.
  村人 $A$ 「私たちのうちの $1$ 人以上が嘘つきだ」
  村人 $B$ 「私たち全員が嘘つきだ」
どの村人が正直者で,どの村人が嘘つきだろうか.


上の補助問題 $1$ は以下のように解くことができます.

まず,村人 $B$ が正直者だとすると,その内容から,$A,B$ のどちらも嘘つきだということになります.ところが,これは $B$ が正直者であるという仮定に矛盾します.したがって,$B$ は嘘つきであることが確定します.
さて,$B$ は嘘つきであることがわかったので,この時点で $A$ の発言は正しいものとなります.したがって,$A$ は正直者です.

もし村人が $4$ 人だったら

村人が $4$ 人である場合を考えてみると,実は $100$ 人の場合も同じ考え方で解けそうだということがわかります.

補助問題 $2$ $4$ 人の村人が住んでいるある村では,村人は本当のことしか言わない正直者か嘘のことしか言わない嘘つきのいずれかである.村人全員が集まってそれぞれが次のように言った.
  村人 $A_1$ 「私たちのうちの $1$ 人以上が嘘つきだ」
  村人 $A_2$ 「私たちのうちの $2$ 人以上が嘘つきだ」
  村人 $A_3$ 「私たちのうちの $3$ 人以上が嘘つきだ」
  村人 $A_4$ 「私たち全員が嘘つきだ」
どの村人が正直者で,どの村人が嘘つきだろうか.


上の問題を解いてみましょう.

補助問題 $1$ で得られた教訓のひとつとして,
  『「私たち全員が嘘つきだ」と発言している人は必ず嘘つき.』
ということがわかります (よく考えれば当然ですが) .したがって,$A_4$ は嘘つきです.この時点で $A_1$ の発言は正しいものとなるので,$A_1$ は正直者です.
つぎに $A_3$ を考えてみましょう.$A_3$ が正直者だとすると,その発言の内容と $A_1$ が正直者であることから嘘つきはちょうど $3$ 人ということになります.しかし,$A_1,A_3$ は正直者なので不合理です.よって,$A_3$ は嘘つきです.
さて,$A_3,A_4$ が嘘つきであることがわかったので,この時点で $A_2$ の発言は正しいものとなるので,$A_2$ は正直者です.

本題の答え

村人が $4$ 人の場合の結果から $100$ 人の場合の答えもなんとなくわかってきたと思います.このように,難しそうな問題は簡単な問題に置き換えたものを解くことで解決の糸口が見えてくることがよくあります.

さて,村人が $100$ 人の場合の解答プロセスは以下のようになります.ここで,Tは正直者を,Fは嘘つきを表しています.

$A_{100}$:F

$A_{1}$:T

$A_{99}$:F (もしTとすると $A_{1}$:Tに矛盾)

$A_{2}$:T

$A_{98}$:F (もしTとすると $A_{1}$:T,$A_{2}$:Tに矛盾)

$A_{3}$:T

$\vdots$

したがって,$A_1〜A_{50}$ が正直者で,$A_{51}〜A_{100}$ が嘘つきとなります.