Хитрый шпион.
45. Хитрый шпион.
Если бы A ответил на вопрос судьи "да", то тем самым он изобличил себя как шпиона, так как судья (вместе с присяжными) мог бы рассуждать следующим образом:
"Предположим, что B шпион. Тогда все трое обвиняемых дали бы правдивые показания, что невозможно, так как один из них лжец. Следовательно, B не может быть шпионом. Значит, его показание ложно, поэтому B лжец. Показание C также ложно, а поскольку C не лжец (ибо лжец B), то он шпион".
Таким образом, если бы на вопрос судьи C ответил "да", то он был бы изобличен как шпион. Зная это, C благоразумно ответил "нет", лишив тем самым суд возможности установить, шпион он или коренной житель. (Суду удалось лишь установить, что либо C рыцарь, а B шпион, либо C лжец, а A шпион, либо C шпион.) Программирование на языке Java тут