Я предполагаю, что эти жестко закодированные константы общедоступны (известны как сборщику искажений, так и оценщику). Есть несколько вариантов:
Рассматривайте константы как дополнительные входы в схему, как вы предлагаете. Обратите внимание, что входные провода можно повторно использовать для многих ворот, поэтому вам нужен только один истинный
и ЛОЖЬ
провода для всей цепи.Поддерживает большинство схем искажения нет
ворота бесплатно, так что на самом деле вам нужна только постоянная истинный
провод. Кроме того, оказывается, что всегда можно взять истинный
метка провода должна быть строкой, состоящей из всех нулей, без ограничения общности. Объединяя все эти наблюдения, дополнительные постоянные входные провода не увеличивают стоимость схемы.
Распространение констант по схеме. Например, ворота у = И (х, правда)
становится просто у=х
, что означает, что вы можете заменить у
провод по Икс
в любых нисходящих воротах, которые используют у
в качестве входа. Ворота у = И (х, ложь)
становится у = ложь
, и вы снова можете распространять у = ложь
вниз по течению в воротах, которые используют у
в качестве входа. Сделав это, вы увидите, что многие гейты после жестко запрограммированной константы можно просто полностью удалить из схемы. Этот процесс не имеет ничего общего с искажением, а просто упрощает логическую схему на основе жестко запрограммированных входных данных.
Если константы известны только тому, кто искажает, то цель состоит в том, чтобы упростить схему/искажение, скрывая эти константы.
Большинство схем искажения (и, безусловно, самые современные) поддерживают вентили, которые поглощают свободные нет
ворота, что означает, что вы можете исказить и (не (х), у)
, и (х, не (у))
, ... ворота по той же цене, что и искажение и
ворота. На самом деле, эти мошеннические схемы скрывают существование этих нет
ворота. Используя это наблюдение, вы все еще можете сделать № 1 сверху. Если вам нужно жестко кодировать ворота у = и (х, ложь)
тогда вы можете кормить свой сингл истинный
входной провод в вентиль вида у = и (х, НЕ (истина))
скрывая присутствие этого нет
(т. е. сокрытие того, были ли ворота жестко запрограммированы с помощью истинный
или же ЛОЖЬ
).
Тем не менее, вы можете сделать немного лучше, используя «полуворота искажения» из конструкции полуворот. Это позволяет вам исказить и (х, правда)
или же и (х, ложь)
калитку, при этом спрятав какой из них перекошенный, за половину стоимости полноценного и
-ворота.