Задача про лжецов.
A ГОВОРИТ:
"Я лжец, а B не лжец"
Кто из них кто?
Ответ на задачку - и
А и
Б -лжецы. Почему?
Обозначим (1) как "Я лжец", и (2) как "
B не лжец"
Предположим,
А лжец.
Логично будет определить лжеца как "инвертора" (логическое NOT). И, если
А врёт, то, на самом деле, oн сказал:
NOT((1) AND (2)) = TRUE
(1) AND (2) = FALSE
Хотя бы одно из высказываний должно быть ложным. Если (2) правда, то (1) ложь, что противоречит начальному предположению, что
А -лжец. Значит, (2) не может быть правдой. Но, и (1) не может быть ложью, значит (1) - истина.
Предположим,
А правдоруб.
(1) AND (2) = TRUE. Здесь оба высказывания обязаны быть правдивыми. Но, правдоруб не может выдать (1) за правду.
Значит, работает только вариант когда
А лжец, причём (1) - правда, а (2) -ложь. Т.е., оба пассажира -лгуны.
~~~~~~~~~~~~~~~~~~~~~~
Тут вся фишка в том, что лжец инвертирует не каждое отдельное высказывание NOT(1) AND NOT(2), а всю логическую цепочку: NOT((1) AND (2)). Т.е., лжец в отдельных высказываниях может сказать и правду, главное чтобы суммарная логическая цепочка оказалась инвертированной, как и положено лжецу. ))
Конечно, и правдолюб в отдельных высказываниях может наврать, главное чтобы суммарная логическая цепочка оказалась неинвертированной, как и положено правдолюбу. )) Но, в данной конкретной задаче, это не играет никакой роли.
Всё просто, как кусок хозяйственного мыла. ))