Алгебра логики: таблицы истинности и логические уравнения
Импликация, эквивалентность, приоритет операций и приём перебора на Python для заданий 2 и 15.
Задание 2 требует восстановить соответствие столбцов таблицы истинности переменным, задание 15 — найти границу параметра A. Оба надёжно решаются перебором на Python, но проверяющий человек — вы, поэтому таблицу базовых операций надо знать наизусть.
Порядок выполнения: отрицание ¬, конъюнкция ∧ (&), дизъюнкция ∨ (|), импликация →, эквивалентность ≡. Импликация A → B ложна в единственном случае: A истинно, B ложно. Эквивалентность A ≡ B истинна, когда значения совпадают. Импликацию всегда можно заменить: A → B = ¬A ∨ B.
Таблица истинности всех операций ЕГЭ
| A | B | ¬A | A ∧ B | A ∨ B | A → B | A ≡ B |
|---|---|---|---|---|---|---|
| 0 | 0 | 1 | 0 | 0 | 1 | 1 |
| 0 | 1 | 1 | 0 | 1 | 1 | 0 |
| 1 | 0 | 0 | 0 | 1 | 0 | 0 |
| 1 | 1 | 0 | 1 | 1 | 1 | 1 |
- ·Дана часть таблицы истинности
- ·Перебираем все 2^n наборов
- ·Ищем строки, где выражение истинно (или ложно)
- ·Сопоставляем столбцы переменным
- ·Ответ — последовательность букв
- ·Есть числовой параметр A
- ·Условие: тождественная истинность
- ·Ищем границу через отрицание
- ·Перебор A в диапазоне на Python
- ·Ответ — одно число
Условие: логическая функция F задана выражением (x ∧ ¬y) ∨ (y ≡ z). Дан фрагмент таблицы истинности, в котором столбцы переменных переставлены и обозначены как Перем.1, Перем.2, Перем.3. Определите, какому столбцу соответствует каждая переменная. Метод. Строим полную таблицу перебором и сравниваем с фрагментом: from itertools import product for x, y, z in product([0,1], repeat=3): F = (x and not y) or (y == z) if not F: print(x, y, z) Выражение ложно только для наборов, где x = 0 и y ≠ z: это (0,0,1) и (0,1,0). Если во фрагменте строки со значением F = 0 имеют вид (0,1,0) и (0,0,1) в порядке столбцов Перем.1, Перем.2, Перем.3, то Перем.1 = x, Перем.2 = y, Перем.3 = z. В бланк: xyz (буквы подряд, в порядке столбцов, без пробелов)
Условие: определите наименьшее натуральное число A, при котором выражение (x > 20) ∨ (y > 20) ∨ (x + y < A) истинно при любых натуральных x и y. Решение. 1) Выражение ложно, когда ложны все три части одновременно: x ≤ 20, y ≤ 20 и x + y ≥ A. 2) Чтобы выражение было истинно всегда, такая ситуация должна быть невозможна. При x ≤ 20 и y ≤ 20 максимум суммы равен 20 + 20 = 40. 3) Значит требуется 40 < A, то есть A ≥ 41. 4) Наименьшее натуральное значение — 41. Проверка перебором: for A in range(1, 60): if all((x > 20) or (y > 20) or (x + y < A) for x in range(1, 41) for y in range(1, 41)): print(A); break В бланк: 41
Импликация несимметрична: A → B и B → A — разные функции. Запомните единственную ложную строку: 1 → 0. Вторая ловушка — граничные значения. Если получено условие A > 40, то наименьшее натуральное A равно 41, а не 40; если A ≥ 40, то 40. Всегда проверяйте найденное значение и соседнее с ним подстановкой. Третья ловушка — «натуральное» число начинается с 1, а «целое неотрицательное» — с 0.
- ✓Приоритет операций соблюдён: ¬, ∧, ∨, →, ≡
- ✓Импликация проверена по правилу «ложна только при 1 → 0»
- ✓В задании 2 перебраны все 2^n наборов переменных
- ✓В задании 15 рассмотрено отрицание условия
- ✓Найденная граница и соседнее значение проверены подстановкой
- ✓Уточнено, натуральные или целые числа рассматриваются
- ✓Ответ записан без пробелов: последовательность букв или одно число