ЕГЭ логика: как разбить выражение на части, чтобы не считать всю таблицу 16 строк?
В заданиях ЕГЭ с логикой бывают выражения на 4 переменные, а это 16 строк таблицы. Руками это долго и я постоянно ошибаюсь. Есть способ упростить выражение СНАЧАЛА, чтобы не городить огромную таблицу? Или какие-то приёмы, чтобы сократить работу?
2 ответа
Да, почти всегда сначала упрощают, а не считают таблицу в лоб. Главные приёмы для ЕГЭ:
-
Замени все импликации на ¬A∨B. После этого выражение часто резко складывается.
-
Ищи строки, где функция жёстко фиксирована. Если по условию F=1 для всей формулы вида X∧Y∧Z, то сразу X=1, Y=1, Z=1 — никакого перебора. Конъюнкция истинна только при всех истинных частях.
-
Импликация-ловушка. В заданиях на поиск решений уравнений: A→B ложно только при A=1, B=0. Если по условию A→B=0, ты МГНОВЕННО знаешь A=1 и B=0.
-
Цепочка импликаций. (((x1→x2)→x3)→x4)… — у таких есть закономерность, которую разбирают отдельно, и считать всё необязательно.
-
Если уж считаешь перебором — гоняй на Python через
itertools.product, а не руками:
from itertools import product
count = 0
for x1, x2, x3, x4 in product([0,1], repeat=4):
if ((x1 <= x2) and (x3 <= x4)): # пример условия
count += 1
print(count)
Вывод: на ЕГЭ ручная таблица на 16 строк — крайняя мера. Сначала упрощение и логические рассуждения, и работы остаётся в разы меньше.
Ещё совет: раздели по И. Если всё выражение — это (...) ∧ (...) ∧ (...), то оно истинно только когда каждый множитель истинен. Значит можно разбираться с каждой скобкой ОТДЕЛЬНО, а потом пересечь результаты. Это превращает одну страшную задачу в несколько маленьких.