こんにちは. 今回は, 次のような簡単な嘘つきクイズを面白い方法で解いてみましょう.
A~Eの5人が以下のように発言している. この5人の誰が嘘つきか?もし一意に決まらないならばそれは何通りあるか?
A「Cは正直者だ」
B「C, Eは嘘つきだ」
C「A, Dは正直者だ」
D「Aは正直者だ」
E「Bは嘘つきだ」
A~Eが嘘つきか正直者かを, 変数
以下,
Aの主張「Cは正直者だ」は, そのまま式で表すと「
ではどう変わるかというと, Aが嘘つきならば右辺の0or1が反転することになります. つまり, 左辺に
(実際,
この調子で数式に書き換えていけば,
A「Cは正直者だ」 →
B「C, Eは嘘つきだ」 →
C「A, Dは正直者だ」 →
D「Aは正直者だ」 →
E「Bは嘘つきだ」 →
となり, いくつか被りがありますから整理すると, 問題は次のように書き換えられます.
線型代数の言葉を使えば, 先の問題は次のように書けます.(有限体上の線型代数は知らないよという方でも, 以下は普通の行列の話と思って読んでもらって大丈夫です.)
左辺の
あとは計算するだけです. 1行目と2行目を5行目に足し, 1行目を3行目に足せば
となり, 適当に並べ替えれば
上の方程式の右辺が
の元となります.
発言に「少なくとも」といった主張が出てくると積を使わないといけないので線型代数では解けなくなってしまいます. またよくある「嘘つきは何人いる」といった条件もうまく表現できません. なのでこれは観賞用解法といったところですね.
ここまで読んでくださった方, ありがとうございました.