ЕГЭ задание 2: дана таблица истинности с пропусками — как определить выражение?
Это про 2 задание ЕГЭ по информатике. Дают кусок таблицы истинности (несколько строк) и список выражений, надо понять, какое выражение ей соответствует и в каком порядке идут столбцы переменных. Есть какой-то надёжный способ, чтобы не перебирать наугад? Я база, только начал.
2 ответа
Самый надёжный способ для базы — зацепиться за строки, где функция = 1, или где = 0, их обычно мало.
Общий план:
- Найди в таблице строку, где F принимает редкое значение (например, единственный 0 или единственная 1).
- Подставь значения переменных из этой строки в каждое выражение-кандидат.
- Выражение, которое в этой строке даёт нужное F, — кандидат. Остальные отсекаются.
- Если осталось несколько — проверь на второй «удобной» строке.
Лайфхак с импликацией. Чаще всего в этих заданиях выражение — цепочка импликаций. Помни: импликация X→Y ложна только при X=1, Y=0. Поэтому строки с F=0 — золото: они жёстко фиксируют значения переменных.
Пример: если F = (x→y)→z и в строке F=0, значит вся импликация ложна → (x→y)=1 и z=0. Это сразу сужает варианты.
Затем разбираешься с порядком столбцов: подставляешь найденную комбинацию в разном назначении переменных и смотришь, где сходится по всем строкам.
Если совсем база и время есть — можно тупо проверить выражение перебором на Python:
from itertools import product
for x, y, z, w in product([0,1], repeat=4):
F = (not x or y) <= z # импликацию пиши как <=
# сравни с данной таблицей
print(x, y, z, w, int(F))
Ловкость в том, что импликацию A→B в Python удобно писать как A <= B (для 0/1 работает точно как таблица). Прогоняешь — и видишь полную таблицу, остаётся сопоставить с условием.