Логические элементы

> Есть только 10 типов экспертов по бомбам: те, кто понимает логические элементы, и те, кто нет.
>
>

**Логические элементы** *(англ. Logic Gates)* — модовый обычный модуль. Представляет собой микросхему, на которой находятся различные немаркированные логические элементы (гейты, вентили), с подключенными к ним светодиодами. Для обезвреживания модуля необходимо определить типы всех логических элементов и найти конфигурацию входа, которая включит конечный выход.

Модуль довольно сложен для сапёра и для эксперта: требует знаний логических операций, логических элементов и таблиц истинности. Не требует никакой информации о корпусе бомбы.

## Руководство

Модуль содержит схему из 7 логических элементов (ещё их называют логическими вентилями). обозначенных буквами от А до G (например: GАТЕ А). Схема имеет 8 входов и 1 выход. Определите все типы логических элементов и найдите конфигурацию входа, которая включит окончательный выход.

Первый ряд из 8 светодиодов — это входные сигналы. Если светодиод горит, значит сигнал активен и равен **1**, иначе, если светодиод выключен, сигнал неактивен и равен **0**. Второй ряд из 4 светодиодов — выходы логических элементов от А до D, которые, в свою очередь, являются входами для элементов E и F. Определите типы первых четырёх логических элементов, используя кнопки «PREV» и «NЕХТ» для переключения между различными конфигурациями входа и выхода.

После того, как вы определите типы первых четырёх логических элементов, далее необходимо определить типы всех оставшихся элементов:

* Чтобы найти тип элемента **E**:
	+ Начните с элемента типа **A** на схеме ниже,
	+ Возьмите число **+ *n*** типа элемента **B**. Сделайте столько шагов, следуя стрелкам.
* Чтобы найти тип элемента **F**:
	+ Начните с элемента типа **E** на схеме ниже.
	+ Возьмите число **+ *n*** типа элемента **C**. Сделайте столько шагов.
* Чтобы найти тип элемента **G**:
	+ Начните с элемента типа **F** на схеме ниже.
	+ Возьмите число **+ *n*** типа элемента **D**. Сделайте столько шагов.
* **Один тип логического элемента встречается в цепи дважды**, а все остальные — один раз. Если найденный тип элемента уже встречался, и вы уже нашли дубликат, продолжайте выполнять шаги по стрелкам на схеме, пока не найдёте доступный тип элемента.

* После того, как вы установили все типы элементов, найдите конфигурацию, используя кнопки «PREV» и «NЕХТ», которая включит окончательный выход на элементе G (то есть, выход должен выводить **1**), а после нажмите «СНЕСК» для проверки решения. Если выход выключен (то есть он выводит **0**), модуль зафиксирует ошибку.

### **Обозначения логических элементов**

Логический элемент — это элементарный строительный блок цифровой схемы. Большинство логических элементов имеют два входа и один выход. Входы обычно находятся слева, а выходы — справа. В любой момент каждый вход и каждый выход либо выключены (**0**, ложь), либо включены (**1**, истина).

В данном модуле используется шесть основных логических элементов: И (AND), ИЛИ (OR), Исключающее ИЛИ (XOR), И-HE (NAND), ИЛИ-НЕ (NOR), Исключающее ИЛИ-НЕ (XNOR).

 **XNOR** | Работает как элемент **XOR**, но с инверсией. Даёт на выходе **1**, если оба входа равны **0** или **1**.

## Советы по обезвреживанию

Данный модуль непосредственно связан с логикой, что означает, что для его решения необходимы знания логических операций, логических элементов и таблиц истинности. Если вы знакомы с ними, то это сильно вам облегчит задачу, в противном случае вам понадобится потратить время на их изучение. А вообще, данный модуль, наравне с некоторыми другими логическими модулями, как, например,  НЕ-сложные провода, довольно таки хорошо подходит для практики и понимания того, как работают логические элементы; они особенно хорошо иллюстрируют, какое значение получится на выходе в зависимости от входных сигналов.

Первый шаг в решении данного модуля лежит на плечах сапёра — ему необходимо определить 4 логических элемента: A, B, C и D. Для этого просто свободно переключайтесь между различными конфигурациями и смотрите на первые светодиоды, которые соединены с каждым из логических элементов, и на их выходные светодиоды. Вы должны просмотреть все варианты входов для всех четырёх элементов: **1)** когда оба сигнала равны **1** (то есть когда оба светодиода горят), **2)** когда только какой-то один из сигналов равен **1** (то есть когда только какой-то один из светодиодов горит), и **3)** когда оба сигнала равны **0** (то есть когда оба светодиода НЕ горят). Только зная все эти конфигурации, вы сможете точно понять тип логического элемента.

Второй шаг в решении модуля лежит уже на плечах эксперта — ему необходимо определить оставшиеся 3 логических элемента: E, F и G. Для этого нужно, используя небольшую схему, начать с одного логического элемента, который указан в инструкции, и далее двигаться по стрелкам на ***n*** шагов вперёд, в зависимости от типа другого элемента.

* Например, мы хотим определить тип логического элемента **E**. Для этого начинаем на схеме с типа элемента **A**, который, допустим, у нас является элементом OR. Находим «OR» на схеме. Далее, нам нужно сделать вперёд **+ *n*** шагов в зависимости от типа элемента **B**, который, к примеру, является у нас элементом NAND. Находим на схеме «NAND» — видим, что у него число ***n*** равно «+4». Значит, мы делаем 4 шага вперёд от «OR», и попадаем в «XNOR». Отлично! Мы определили тип логического элемента **E** — XNOR. (Если бы «XNOR» у нас уже был использован, то мы бы сделали ещё шаг, и попали бы в «AND». Тогда тип логического элемента **E** был бы «AND».)

Третий шаг в решении модуля снова достаётся сапёру, которому необходимо, перебирая конфигурации и смотря теперь на светодиоды, которые являются входами для элементов **E** и **F**, найти такую из конфигураций, которая давала бы положительный сигнал на выходе (то есть, **1** на элементе **G**). Здесь надо одновременно смотреть на состояния нескольких светодиодов, держа при этом в голове типы трёх последних логических элементов: E, F и G, поскольку после элементов **E** и **F** нет светодиодов, и они напрямую подключены к выходному элементу **G**.