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