Задание 2. Логическое выражение и таблица истинности
Теория
- Количество наборов. Для четырёх логических переменных (
w, x, y, z) существует
24 = 16 комбинаций значений 0 и 1. Каждая строка таблицы истинности соответствует одному набору. - Основные логические операции в Python.
| Логическая операция | Символ | Запись в Python |
|---|---|---|
| отрицание (НЕ) | ¬A | not A |
| логическое И | A ∧ B | A and B |
| логическое ИЛИ | A ∨ B | A or B |
| импликация | A → B | (not A) or B |
| эквивалентность | A ≡ B | A == B |
Суть задания. В условии дана логическая формула и несколько строк таблицы истинности, где функция принимает значение 1.
Столбцы таблицы не подписаны, поэтому необходимо определить, какой столбец соответствует каждой переменной, и записать порядок
следования букв (например, zyxw).
Общий принцип решения:
- перебрать все возможные комбинации 0 и 1 для всех переменных;
- для каждого набора вычислить значение логической формулы;
- вывести только те строки, где функция равна 1;
- сравнить полученные строки с таблицей из условия и определить порядок переменных.
Пример (демоверсия ЕГЭ 2026)
Формула:
F = (x or y) and (not (y == z)) and (not w)
Пошаговое решение
- Перебрать все возможные наборы 0 и 1 для
w, x, y, z. - Для каждого набора вычислить значение выражения
F. - Вывести только те строки, где
F = 1. - Сравнить выведенные строки с таблицей из демоверсии.
- По совпадению определить, какой столбец соответствует каждой переменной.
Код
|
1 2 3 4 5 6 7 8 9 |
print('w x y z') for w in range(2): for x in range(2): for y in range(2): for z in range(2): F = (x or y) and (not (y == z)) and (not w) if F == 1: print(w, x, y, z) |
Вывод программы
|
1 2 3 4 5 |
w x y z 0 0 1 0 0 1 0 1 0 1 1 0 |
Как определить порядок переменных
Из вывода видно, что в этих трёх строках первый столбец всегда равен 0. Это означает, что переменная w в данной задаче
всегда принимает значение 0. В таблице, приведённой в демоверсии, тоже есть столбец, в котором во всех показанных строках стоит 0 — этот
столбец и соответствует переменной w, даже если он там не первый.
Оставшиеся три столбца в нашем выводе — это значения переменных x, y и z:
|
1 2 3 4 5 |
x y z 0 1 0 1 0 1 1 1 0 |
Если сравнить эти тройки с теми, что даны в демоверсии, видно, что в их таблице эти же значения стоят в порядке z, y, x.
Добавляем в конец найденное w, которое всегда 0.
Ответ: zyxw
Примечание. Для любых аналогичных задач (СтатГрад, демо других лет, региональные варианты) меняется только формула внутри кода. Структура перебора и способ сравнения с таблицей остаются такими же.