Задача

За круглым столом сидит n>2 человек. Каждый из них либо рыцарь, либо лжец. Рыцари всегда говорят только правду, а лжецы всегда лгут. Опишите способ построения логической схемы c n входами, которая принимает значение истина тогда и только тогда, когда каждый из сидящих за столом может произнести фразу «Оба моих соседа лжецы».

На логической схеме входы соответствуют людям: нули обозначают лжецов, а единицы рыцарей. Разрешается использовать логические элементы AND (и), OR (или), NOT (не) и XOR (исключающее или). Соседние входы соответствуют соседним людям, кроме того, поскольку стол круглый, самый верхний вход будем считать соседним с самым нижним.

Для иллюстрации Вашего решения Вы можете использовать манипулятор с тремя входами. Однако, оцениваться будет в первую очередь текст решения, автоматической проверки не производится.

Решение участника

Лжец сможет произнести данную фразу, когда хотя-бы один его сосед - рыцарь, а рыцарь сможет произнести данную фразу, когда оба его соседа - лжецы. Значит для каждого человека нужно создать логическую схему указанную на манипуляторе (входы (сверху вниз): 2 - человек для которого строится логическая схема, 1 и 3 - его соседи (на манипуляторе проиллюстрирован пример только для входа 2, для всех остальных входов нужно сделать аналогично)). Если человек скажет данную фразу, то на выходе (где самое правое OR) будет логическая единица и поэтому нужно будет объединить все получившиеся выходы с помощью других AND, т.к. только когда каждый произнесёт данную фразу, тогда все выходы будут выдавать логическую единицу.