2016-10-08 1 views
1

Я новичок в логическом дизайне и стараюсь научить себя. Я понимаю, что XOR указывает, что выход будет 0, только когда входы будут одинаковыми. Кроме того, я понимаю, что учитывая два входа, называемые A и B, ((~ A AND B) OR (A + ~ B)) приравнивается к A XOR B.Переписать булевое выражение с помощью XOR

Я пытаюсь узнать, как преобразовать булево выражение без XOR в булево выражение, по крайней мере, с одним XOR и, возможно, с другими воротами.

Скажем, что у меня есть булево выражение: (~ A AND ~ B AND ~ C) ИЛИ (A И B И C). Я пытаюсь преобразовать это выражение в одно, содержащее хотя бы один XOR.

Однако, я с трудом понимаю, где разместить C и C, и операции. Я попробовал следующее:

((~ A AND B) ИЛИ (A AND ~ B)) AND (~ C AND C), но это не эквивалентно.

((~ A AND B) ИЛИ (A AND ~ B)) ИЛИ (~ C ИЛИ C), но он не эквивалентен.

((~ A AND B) ИЛИ (A AND ~ B)) ИЛИ (~ C И C), но он не эквивалентен.

((~ A AND B) ИЛИ (A AND ~ B)) И (~ C ИЛИ C), но это не эквивалентно.

Что мне здесь не хватает? Может ли кто-нибудь объяснить, как взять исходное булевское выражение и реализовать его с помощью XOR?

Мне нравится учиться и изучать новые вещи, но это заставляет меня сходить с ума по часам.

ответ

2

форма с большим количеством XOR операций является ANF (алгебраическая нормальная форма, Жегалкина нормальная форма, или расширение Рида-Мюллера):

~((A AND B) XOR (A AND C) XOR (B AND C) XOR A XOR B XOR C) 

У меня это спрашивать WolframAlpha.

Смежные вопросы