Логические игры

         

Задачу невозможно было бы решить,


48. Более интересный случай.

   Задачу невозможно было бы решить, если бы в условиях не было ссылки на то, что суд изобличил шпиона, после того как на него указал C: ведь мы знаем, что суд смог установить, кто из троих шпион, и это весьма важная "зацепка"!
   Предположим, что C обвинил A в том, что тот шпион. Располагая этими данными, судья не мог бы решить, кто шпион, поскольку они позволяют лишь утверждать, что либо A шпион, B лжец и C рыцарь либо B шпион, A рыцарь и C лжец, либо C шпион, A лжец и B рыцарь.
   Таким образом, если C указал на A как на шпиона, то судья не мог бы изобличить настоящего шпиона.
   Посмотрим теперь, что произошло бы, если бы C указал на B. Тогда B обвиняли бы в том, что он шпион, двое: A и C. Выдвинутые A и C обвинения либо оба истинны, либо оба ложны. Если бы они были оба истинны, то B действительно был бы шпионом, а так как A и C оба сказали правду, они оба должны были бы быть рыцарями ("вакансия" шпиона занята B). Но по условиям задачи среди подсудимых A, B и C не может быть двух рыцарей. Следовательно, предъявленные B обвинения в шпионаже ложны. Значит, B не шпион. Мог бы A быть шпионом? Нет, так как если бы A был шпионом, то взаимные обвинения B и C в шпионаже были бы ложны. Следовательно, B и C были бы (оба) лжецами (что противоречит условиям задачи.) Остается единственно возможный случай: шпион C (B, обвинивший C в шпионаже, рыцарь, а A, обвинивший B, лжец).
   Итак, если C указал на A как на шпиона, то судья не смог бы установить, кто из троих в действительности шпион. Но если C указал на B, то судья смог бы решить что шпион C. А так как судья знал, на кого показал A, то C должен был указать на B, и судья на основании полученных данных изобличил C в шпионаже.