Тема 5

Логические основы компьютера

Что проверяют по спецификации:

Высказывания и логические значенияОсновные операции: НЕ, И, ИЛИИмпликация, эквивалентность, исключающее ИЛИПорядок операций и построение таблицы истинностиЗаконы алгебры логики и упрощение выраженийЛогические элементы и схемыСумматор, триггер и процессорЛогика в Python и задачи ЕНТ

Суть за минуту

Логика изучает высказывания — утверждения, которые бывают только истинными (1) или ложными (0). Из простых высказываний с помощью операций НЕ, И, ИЛИ, импликации, эквивалентности и исключающего ИЛИ строят сложные, а их значения находят по таблицам истинности. Законы алгебры логики (де Моргана, поглощения, распределительный и др.) позволяют упрощать выражения. В компьютере эти операции выполняют логические элементы (вентили): конъюнктор, дизъюнктор, инвертор; из них собраны сумматоры, триггеры и весь процессор. На ЕНТ нужно вычислить выражение, построить таблицу истинности, упростить формулу, прочитать логическую схему и предсказать результат and/or/not в Python.

Объясняем просто

Логические операции — как выключатели на лампе: два выключателя подряд (последовательно) работают как И, два выключателя рядом (параллельно) — как ИЛИ.

Высказывание

«Астана — столица Казахстана» — высказывание, оно истинно. «Который час?» — не высказывание: про вопрос нельзя сказать «правда» или «ложь».

И — строгий учитель

Результат И равен 1, только если все условия выполнены: «сдал математику И сдал информатику».

ИЛИ — добрый учитель

Результат ИЛИ равен 1, если выполнено хотя бы одно условие. Ложь получается только тогда, когда всё ложно.

НЕ — переключатель

НЕ меняет значение на противоположное: была 1 — стала 0, был 0 — стала 1.

Главные формулы

A→B=¬A∨BA \to B = \neg A \lor B
Импликация «если A, то B» ложна только при A=1A = 1, B=0B = 0
A≡B=(A∧B)∨(¬A∧¬B)A \equiv B = (A \land B) \lor (\neg A \land \neg B)
Эквивалентность истинна, когда значения A и B совпадают
A⊕B=¬(A≡B)=(A∨B)∧¬(A∧B)A \oplus B = \neg(A \equiv B) = (A \lor B) \land \neg(A \land B)
Исключающее ИЛИ (XOR): истинно, когда значения различны
¬(A∧B)=¬A∨¬B,¬(A∨B)=¬A∧¬B\neg(A \land B) = \neg A \lor \neg B,\quad \neg(A \lor B) = \neg A \land \neg B
Законы де Моргана
A∨A∧B=A,A∧(A∨B)=AA \lor A \land B = A,\quad A \land (A \lor B) = A
Законы поглощения
2n2^n
Число строк таблицы истинности для nn переменных

Понятия и термины

Высказывание
Повествовательное предложение, о котором можно однозначно сказать, истинно оно или ложно
Конъюнкция
Логическое умножение (И, AND, ∧\land, &): соединение двух высказываний A и B в одно составное, истинное только когда истинны оба
Дизъюнкция
Логическое сложение (ИЛИ, OR, ∨\lor, |): операция, ложная тогда и только тогда, когда оба исходных высказывания ложны
Инверсия
Логическое отрицание (НЕ, NOT, ¬\neg, A‾\overline{A}): операция, которая ставит в соответствие высказыванию противоположное по значению
Импликация
Логическое следование «если A, то B» (A→BA \to B): ложна только когда A истинно, а B ложно
Таблица истинности
Таблица, в которой для каждого набора значений переменных указано значение логического выражения
Конъюнктор
Логический элемент (вентиль), реализующий операцию логического умножения (И, AND)
Дизъюнктор
Логический элемент (вентиль), реализующий операцию логического сложения (ИЛИ, OR)
Инвертор
Логический элемент, реализующий операцию логического отрицания (НЕ)
Сумматор
Электронная логическая схема, выполняющая суммирование двоичных чисел

Разбор темы

Высказывания и логические значения 10 класс

Высказывание — повествовательное предложение, которое либо истинно, либо ложно: «2+2=42 + 2 = 4» (истина), «Солнце вращается вокруг Земли» (ложь).

Не являются высказываниями вопросы, восклицания, приказы («Закройте дверь!») и предложения с неизвестной переменной: «x>3x > 3» станет высказыванием, только когда мы подставим конкретное xx.

Истину обозначают 1 (True), ложь — 0 (False). Простые высказывания обозначают буквами A, B, C, а из них с помощью связок «и», «или», «не», «если…то» строят составные.

Основные операции: НЕ, И, ИЛИ 10 класс

Инверсия ¬A\neg A (НЕ, A‾\overline{A}, not) меняет значение на противоположное.

Конъюнкция A∧BA \land B (И, A⋅BA \cdot B, &, and) равна 1 только когда A=1A = 1 и B=1B = 1. Её называют логическим умножением: значение совпадает с произведением A⋅BA\cdot B.

Дизъюнкция A∨BA \lor B (ИЛИ, A+BA + B, |, or) равна 0 только когда A=0A = 0 и B=0B = 0. Логическое сложение: 1∨1=11 \lor 1 = 1, а не 2.

A B | not A | A and B | A or B
0 0 |   1   |    0    |   0
0 1 |   1   |    0    |   1
1 0 |   0   |    0    |   1
1 1 |   0   |    1    |   1

Пример из жизни: «Пойду гулять, если нет дождя И я сделал уроки» — ¬D∧U\neg D \land U.

Импликация, эквивалентность, исключающее ИЛИ 10–11 класс

Импликация A→BA \to B («если A, то B») ложна в единственном случае: из истины следует ложь (1→0=01 \to 0 = 0). Из лжи следует что угодно: 0→0=10 \to 0 = 1, 0→1=10 \to 1 = 1. Формула для упрощения: A→B=¬A∨BA \to B = \neg A \lor B.

Эквивалентность A≡BA \equiv B равна 1, когда значения совпадают (0≡0=10 \equiv 0 = 1, 1≡1=11 \equiv 1 = 1).

Исключающее ИЛИ A⊕BA \oplus B (XOR, сложение по модулю 2) — противоположность эквивалентности: 1, когда значения разные. 1⊕1=01 \oplus 1 = 0 — как последняя цифра суммы 1+1=1021 + 1 = 10_2.

A B | A→B | A≡B | A⊕B
0 0 |  1  |  1  |  0
0 1 |  1  |  0  |  1
1 0 |  0  |  0  |  1
1 1 |  1  |  1  |  0

Порядок операций и построение таблицы истинности 10 класс

Приоритет: скобки → НЕ → И → ИЛИ → импликация → эквивалентность. Значит, ¬A∨B∧C\neg A \lor B \land C читается как (¬A)∨(B∧C)(\neg A) \lor (B \land C).

Алгоритм построения таблицы: 1) посчитать число переменных nn, строк будет 2n2^n (2 переменные — 4 строки, 3 — 8, 4 — 16); 2) выписать все наборы по порядку, как двоичные числа от 00 до 2n−12^n - 1 (000, 001, 010, …, 111); 3) сделать столбцы для промежуточных действий в порядке приоритета; 4) вычислить итоговый столбец.

Пример: F=¬A∨B∧CF = \neg A \lor B \land C. Сначала столбец ¬A\neg A, потом B∧CB \land C, потом их дизъюнкция. Для A=1,B=1,C=0A = 1, B = 1, C = 0: ¬A=0\neg A = 0, B∧C=0B \land C = 0, F=0F = 0.

В задачах «по фрагменту таблицы определите выражение» подставляйте строки фрагмента в каждый вариант ответа и отбрасывайте варианты, которые дают хотя бы одно несовпадение.

Законы алгебры логики и упрощение выражений 10–11 класс

Константы: A∧1=AA \land 1 = A, A∧0=0A \land 0 = 0, A∨0=AA \lor 0 = A, A∨1=1A \lor 1 = 1. Идемпотентность: A∧A=AA \land A = A, A∨A=AA \lor A = A.

Противоречие и исключённое третье: A∧¬A=0A \land \neg A = 0, A∨¬A=1A \lor \neg A = 1. Двойное отрицание: ¬¬A=A\neg\neg A = A.

Переместительный и сочетательный законы — как в алгебре. Распределительный работает в обе стороны: A∧(B∨C)=A∧B∨A∧CA \land (B \lor C) = A \land B \lor A \land C и A∨B∧C=(A∨B)∧(A∨C)A \lor B \land C = (A \lor B) \land (A \lor C).

Законы де Моргана: ¬(A∧B)=¬A∨¬B\neg(A \land B) = \neg A \lor \neg B, ¬(A∨B)=¬A∧¬B\neg(A \lor B) = \neg A \land \neg B («отрицание переходит внутрь, И меняется на ИЛИ»).

Поглощение: A∨A∧B=AA \lor A \land B = A, A∧(A∨B)=AA \land (A \lor B) = A. Склеивание: A∧B∨A∧¬B=AA \land B \lor A \land \neg B = A, (A∨B)∧(A∨¬B)=A(A \lor B) \land (A \lor \neg B) = A. Полезно также A∨¬A∧B=A∨BA \lor \neg A \land B = A \lor B.

Порядок упрощения: убрать →\to и ≡\equiv по формулам, внести отрицания внутрь по де Моргану, затем применять поглощение и склеивание. Результат проверяйте таблицей истинности.

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

Логический элемент (вентиль) — электронная схема, которая выполняет одну логическую операцию над сигналами 0 и 1. Основные: конъюнктор (И, на схемах знак &), дизъюнктор (ИЛИ, знак 1 или ≥1\geq 1), инвертор (НЕ, кружок на выходе).

Есть также И-НЕ (¬(A∧B)\neg(A \land B)) и ИЛИ-НЕ (¬(A∨B)\neg(A \lor B)): из одних только элементов И-НЕ можно собрать любую схему.

Схема → формула: идём от входов к выходу и записываем выражение на выходе каждого элемента. Если на входы элемента И подаются A и выход инвертора от B, на выходе A∧¬BA \land \neg B.

Формула → схема: последняя выполняемая операция — это элемент на выходе; его входы — подвыражения. Для F=(A∨B)∧¬CF = (A \lor B) \land \neg C нужны дизъюнктор (A, B), инвертор (C) и конъюнктор на выходе.

Чтобы найти выход схемы при заданных входах, вычисляйте элементы по порядку, подписывая 0 или 1 на каждом проводе.

Сумматор, триггер и процессор 10–11 класс

Полусумматор складывает два бита A и B: сумма S=A⊕BS = A \oplus B, перенос P=A∧BP = A \land B. Для 1+11 + 1: S=0S = 0, P=1P = 1, то есть 10210_2.

Полный (одноразрядный) сумматор учитывает ещё перенос из младшего разряда: S=A⊕B⊕PвхS = A \oplus B \oplus P_{\text{вх}}, P=A∧B∨(A⊕B)∧PвхP = A \land B \lor (A \oplus B) \land P_{\text{вх}}. Цепочка из nn сумматоров складывает nn-битные числа.

Триггер — схема из логических элементов с обратной связью, которая хранит 1 бит (два устойчивых состояния). RS-триггер имеет входы S (установить 1) и R (сбросить в 0). Из триггеров строят регистры и кэш-память процессора.

В процессоре арифметико-логическое устройство (АЛУ) выполняет вычисления и логические операции (в его основе сумматоры), устройство управления (УУ) координирует выполнение команд, регистры хранят данные, с которыми работает процессор.

Логика в Python и задачи ЕНТ 10–11 класс

Операторы: not, and, or; приоритет not > and > or, а сравнения (<, ==, !=) выполняются раньше всех логических. not a > b означает not (a > b).

print(not True or True and False)   # False
print(True or False and False)       # True
print((True or False) and False)     # False

Короткое вычисление: or возвращает первый истинный операнд, and — первый ложный (или последний): 0 or 5 → 5, 3 and 7 → 7. Ложными считаются 0, пустая строка и пустой список.

Для 0/1 и True/False: a == b — эквивалентность, a != b и a ^ b — XOR, (not a) or b — импликация. Операторы &, |, ^ работают поразрядно над целыми: 12 & 10 → 8.

Типовая задача ЕНТ: «Для какого числа X истинно НЕ(X > 5) И (X нечётное)?» Переводим: X≤5X \leq 5 и XX нечётно, затем проверяем варианты ответа.

Примеры задач с решением

Задача 1Постройте таблицу истинности для F=(A∨B)∧¬CF = (A \lor B) \land \neg C. Сколько наборов дают F=1F = 1?
  1. Переменных 3, строк 23=82^3 = 8.
  2. A B C | A∨B | ¬C | F
    0 0 0 |  0  |  1 | 0
    0 0 1 |  0  |  0 | 0
    0 1 0 |  1  |  1 | 1
    0 1 1 |  1  |  0 | 0
    1 0 0 |  1  |  1 | 1
    1 0 1 |  1  |  0 | 0
    1 1 0 |  1  |  1 | 1
    1 1 1 |  1  |  0 | 0
  3. F=1F = 1 в строках 010, 100, 110.
Ответ 3 набора
Задача 2Для какого из чисел X истинно высказывание НЕ(X > 5) И (X нечётное): 4, 5, 6, 7?
  1. НЕ(X > 5) означает X≤5X \leq 5: подходят 4 и 5.
  2. Из них нечётное только 5.
Ответ 5
Задача 3Упростите F=¬(A∨¬B)∨AF = \neg(A \lor \neg B) \lor A.
  1. Де Морган: ¬(A∨¬B)=¬A∧B\neg(A \lor \neg B) = \neg A \land B.
  2. F=¬A∧B∨AF = \neg A \land B \lor A.
  3. Закон A∨¬A∧B=A∨BA \lor \neg A \land B = A \lor B.
Ответ A∨BA \lor B
Задача 4При каких значениях A и B ложно выражение A→BA \to B? Чему равно (1→0)∨(0≡0)(1 \to 0) \lor (0 \equiv 0)?
  1. Импликация ложна только при A=1A = 1, B=0B = 0.
  2. 1→0=01 \to 0 = 0; 0≡0=10 \equiv 0 = 1; 0∨1=10 \lor 1 = 1.
Ответ A=1,B=0A = 1, B = 0; значение выражения 1
Задача 5Схема: A и B подаются на дизъюнктор, C — на инвертор, их выходы — на конъюнктор. Найдите выход при A=1A = 1, B=0B = 0, C=1C = 1.
  1. Формула схемы: F=(A∨B)∧¬CF = (A \lor B) \land \neg C.
  2. A∨B=1∨0=1A \lor B = 1 \lor 0 = 1; ¬C=¬1=0\neg C = \neg 1 = 0.
  3. F=1∧0=0F = 1 \land 0 = 0.
Ответ 0
Задача 6Что выведет print(not 3 > 2 or 2 > 1 and 0)?
  1. Сначала сравнения: 3 > 2 → True, 2 > 1 → True.
  2. Затем not: not True → False.
  3. Затем and: True and 0 → 0 (and вернул последний операнд).
  4. Наконец or: False or 0 → 0.
Ответ 0

Сложные задачи: шаг за шагом

Задача 1Сколько существует наборов значений (A,B,C,D)(A, B, C, D), при которых (A→B)∧(C∨D)=1(A \to B) \land (C \lor D) = 1?

Идея: Части выражения зависят от разных переменных, поэтому число наборов перемножается.

  1. Первая скобка
    A→BA \to B истинна в 3 из 4 наборов (ложна только при A=1,B=0A=1, B=0).
  2. Вторая скобка
    C∨DC \lor D истинна в 3 из 4 наборов (ложна только при C=D=0C=D=0).
  3. Конъюнкция
    Нужны истинными обе скобки, а переменные не пересекаются: 3⋅3=93 \cdot 3 = 9 из 16.
Ответ 9
Задача 2Упростите F=(A∨B)∧(¬A∨B)∧(A∨¬B)F = (A \lor B) \land (\neg A \lor B) \land (A \lor \neg B).

Идея: Склеивание двух первых скобок, затем распределительный закон.

  1. Склеивание
    (A∨B)∧(¬A∨B)=B∨A∧¬A=B∨0=B(A \lor B) \land (\neg A \lor B) = B \lor A \land \neg A = B \lor 0 = B.
  2. Остаток
    F=B∧(A∨¬B)=A∧B∨B∧¬B=A∧B∨0F = B \land (A \lor \neg B) = A \land B \lor B \land \neg B = A \land B \lor 0.
  3. Проверка
    F=1F = 1 только при A=B=1A = B = 1: первая скобка 1, вторая 1, третья 1. При остальных наборах хотя бы одна скобка равна 0.
Ответ A∧BA \land B
Задача 3Полусумматор: запишите формулы суммы S и переноса P и выразите S только через И, ИЛИ, НЕ. Что будет на выходах при A=B=1A = B = 1?

Идея: Сложение битов: последняя цифра — XOR, перенос — И.

  1. Таблица
    0+0=000+0 = 00, 0+1=010+1 = 01, 1+0=011+0 = 01, 1+1=101+1 = 10. Столбец S: 0, 1, 1, 0 — это A⊕BA \oplus B; столбец P: 0, 0, 0, 1 — это A∧BA \land B.
  2. XOR через базовые элементы
    S=(A∨B)∧¬(A∧B)S = (A \lor B) \land \neg(A \land B): «хотя бы один, но не оба». Нужны дизъюнктор, конъюнктор, инвертор и ещё один конъюнктор; выход первого конъюнктора одновременно даёт P.
  3. Входы 1 и 1
    A∨B=1A \lor B = 1, A∧B=1A \land B = 1, ¬1=0\neg 1 = 0, S=1∧0=0S = 1 \land 0 = 0, P=1P = 1. Получили 102=210_2 = 2.
Ответ S=A⊕B=(A∨B)∧¬(A∧B)S = A \oplus B = (A \lor B) \land \neg(A \land B), P=A∧BP = A \land B; при A=B=1A = B = 1: S=0S = 0, P=1P = 1

Частые ловушки на ЕНТ

  • Импликация A→BA \to B ложна только при A=1A = 1, B=0B = 0; при ложном A она всегда истинна — это самая частая ошибка.
  • НЕ, И, ИЛИ имеют разный приоритет: ¬A∨B∧C\neg A \lor B \land C — это ¬A∨(B∧C)\neg A \lor (B \land C), а не (¬A∨B)∧C(\neg A \lor B) \land C. В Python так же: not > and > or.
  • По де Моргану при внесении отрицания операция меняется: ¬(A∧B)=¬A∨¬B\neg(A \land B) = \neg A \lor \neg B, а не ¬A∧¬B\neg A \land \neg B.
  • Строк в таблице истинности 2n2^n, а не 2n2n: для 4 переменных их 16, а не 8.
  • В Python and/or возвращают сам операнд, а не обязательно True/False: print(0 or 5) выведет 5, print(2 and 0) выведет 0.

Запомнить

И — «все», ИЛИ — «хотя бы один», НЕ — «наоборот», импликация ложна только 1 → 0; порядок: скобки, НЕ, И, ИЛИ, →, ≡.

Проверь себя

1. Какое из предложений является высказыванием?
  1. Который сейчас час?
  2. Число xx больше трёх.
  3. Астана — столица Казахстана.
  4. Выучи таблицу истинности!
Показать ответ

Астана — столица Казахстана. Только о нём можно однозначно сказать «истина» или «ложь»; в x>3x > 3 значение зависит от xx.

2. При каких значениях A и B импликация A→BA \to B ложна?
  1. A=0,B=0A = 0, B = 0
  2. A=0,B=1A = 0, B = 1
  3. A=1,B=0A = 1, B = 0
  4. A=1,B=1A = 1, B = 1
Показать ответ

A=1,B=0A = 1, B = 0 Из истины не может следовать ложь: 1→0=01 \to 0 = 0.

3. Сколько строк в таблице истинности выражения с 4 переменными?
  1. 4
  2. 8
  3. 32
  4. 16
Показать ответ

16 24=162^4 = 16 наборов значений.

4. Какое выражение равносильно ¬(A∧B)\neg(A \land B)?
  1. ¬A∨¬B\neg A \lor \neg B
  2. ¬A∧¬B\neg A \land \neg B
  3. A∨BA \lor B
  4. ¬A∧B\neg A \land B
Показать ответ

¬A∨¬B\neg A \lor \neg B Закон де Моргана: отрицание вносится внутрь, И меняется на ИЛИ.

5. Что выведет print(not True or True and False)?
  1. True
  2. False
  3. None
  4. Ошибка
Показать ответ

False not True → False; True and False → False; False or False → False.

6. Какой логический элемент выдаёт 1 только тогда, когда на оба входа подана 1?
  1. Дизъюнктор
  2. Инвертор
  3. Конъюнктор
  4. Исключающее ИЛИ
Показать ответ

Конъюнктор Конъюнктор реализует логическое умножение И.

Связанные темы

Узнай свой уровень: бесплатная диагностика ЕНТ