Задача

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

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

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

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

По условию на выходе будет 1,только если каждый из сидящих за столом может произнести фразу «Оба моих соседа лжецы»,следовательно,сверху и снизу от рыцарей(с учетом цикличности) должны сидеть лжецы(тогда рыцари скажут эту фразу,т.к. они говорят только правду),а сверху или снизу от лжецов должен сидеть хотя бы один рыцарь(тогда они скажут эту фразу,т.к. они всегда врут). Построение схемы происходит следующим образом:проверяем n четное или нет,далее если нечетное то на четных позициях должны сидеть рыцари(т.к. если их окажется больше,то рядом с рыцарем будет сидеть другой рыцарь,а следовательно он не скажет эту фразу),то есть с помощью and проверяем,что на четных позициях 1,далее проверим с помощью xor,что на нечетных позициях стоят 0,т.е. отличны он людей на четных,а также проверим с помощью not всех and от нечетных позиций(то есть что там только лжецы) если четное количество,то просто проверяем что соседи отличны друг от друга и то что либо на четных либо на нечетных позициях сидят только рыцари