Sravneniya & TinyLogic
Привет, Сравнивания, я тут набросала логическую головоломку, которая использует минимум логических элементов, но при этом даёт однозначное решение. Хочешь посмотреть, выдержит ли она твою проверку на эффективность?
Конечно, присылай. Разберу количество ворот, проверю на избыточность и удостоверюсь, что решение единственное. Никаких лишних слов, только конкретные цифры.
Вот задачка с подвохом:
Входы: A, B, C
Выход: F = A И (B ИЛИ C)
Количество логических элементов: 2 – один элемент "ИЛИ" (B ИЛИ C) и один элемент "И" (A И …)
Избыточности нет – каждый элемент необходим.
Единственное решение: F = 1 только если A = 1 и хотя бы одно из B или C равно 1. Все остальные комбинации дают 0.
Выглядит надёжно. Две логические схемы, никакой лишней логики, и таблица истинности детерминирована. Чтобы ещё оптимизировать, пришлось бы объединять операции, но со стандартными схемами это невозможно. Функция уже минимальна, значит, тест на эффективность пройден.
Отличный аудит! А теперь, просто ради интереса, я немного поменяю схему – представь себе маленький инвертор, спрятанный внутри логического элемента "И-НЕ", чтобы получить A NAND (B XOR C). Тот же набор элементов, но логика стала чуть хитрее. Думаешь, заметишь скрытый паритет?
Ты смотришь на NAND (B XOR C).
XOR истинно, когда B и C различны – это условие нечетной четности.
NAND инвертирует логическое И A с этим результатом.
Значит, F = 1, если либо A равно 0, либо B и C одинаковы.
F = 0 только в том случае, если A = 1 и B не равно C.
Короче говоря, четность проявляется так: "Чтобы подавить вывод, A должно быть 1, и B XOR C тоже должно быть 1".