Как собрать ИЛИ, когда под рукой только И и НЕ
Перед четвёртым уровнем игра предлагает короткое интерактивное вступление: вы щёлкаете выключателями на схеме из трёх вентилей и сами находите правило, которое выдаёт ИЛИ. Здесь — то же самое в тексте.
Опыт: двойное «нет»
Перед вами схема: два НЕ, затем И, затем ещё одно НЕ. Два выключателя A и B и лампа Q. Переберите все четыре сочетания выключателей и заметьте: лампа гаснет ровно в одном случае — когда оба выключателя выключены. В остальных трёх горит.
| A | B | Q |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Форма этой таблицы знакома: лампа горит, если включён хотя бы один выключатель. Так ведёт себя ИЛИ. Только собрано оно здесь из других деталей — из НЕ и И.
Прогноз: уберём последнее НЕ
Снимем с выхода последний НЕ — останутся два НЕ и И. Что теперь на лампе при A=0, B=0? Единица: каждое НЕ выдаёт по 1, И её пропускает. В исходной схеме гасила лампу именно последняя НЕ — она переворачивала эту единицу в ноль. Без неё единица выходит наружу, и лампа горит только при обоих выключенных выключателях: получилось ИЛИ-НЕТ.
Правило: закон де Моргана
То, что вы увидели, — закон де Моргана. Словами: «ИЛИ = перевернуть оба входа, взять И, перевернуть выход». Два НЕ на входах — это перевёрнутые входы, И соединяет их, последнее НЕ переворачивает выход: NOT(NOT A AND NOT B). Если поменять в правиле И и ИЛИ местами, получится вторая форма: «И = перевернуть оба входа, взять ИЛИ, перевернуть выход».
Пример из жизни
Условие «не (обе проверки провалились)» означает то же самое, что «хотя бы одна проверка прошла». Структура та же: «провалился» — это перевёрнутый «прошёл», И соединяет два провала, а внешнее «не» переворачивает результат. В схемах этот ход собирает недостающий вентиль из имеющихся: на четвёртом уровне в наборе есть НЕ и И, и ИЛИ собирается именно так.