Помогите сдать ЕГЭ (Проблемы с номером 2)
Мне тут уже совсем скоро сдавать ЕГЭ по информатике, а я так и не разобрался с некоторыми типами второго задания... Вот, например: Тип 1
((x → y) ∧ (z ∨ w)) → ((x ≡ w) ∨ (y ∧ ¬z))
print("x y z w")
for x in range(0, 2):
for y in range(0, 2):
for z in range(0, 2):
for w in range(0, 2):
if not(((x <= y) and (z or w)) <= ((x == w) or (y and not(z)))):
print(x, y, z, w)
На выходе от данного кода мы получаем таблицу:
X Y Z W
(1, 1, 1, 0),
(0, 0, 0, 1),
(0, 0, 1, 1),
(0, 1, 1, 1).
Однако, столбцов из кода больше, чем требуется в этой таблице:
Или вот ещё один примерчик
((z → w) ∨ (y ≡ w)) ∧ ((x ∨ z) ≡ y)
print("x y z w")
for x in range(0, 2):
for y in range(0, 2):
for z in range(0, 2):
for w in range(0, 2):
if ((z <= w) or (y == w)) and ((x or z) == y):
print(x, y, z, w)
Выход:
X Y Z W
(0, 0, 0, 0)
(0, 0, 0, 1)
(0, 1, 1, 1)
(1, 1, 0, 0)
(1, 1, 0, 1)
(1, 1, 1, 1)
Здесь столбцов из кода ЗНАЧИТЕЛЬНО больше, чем требуется в этой таблице:
А вот мой любимый пример:
((y → w) ≡ (x → ¬z)) ∧ (x ∨ w)
print("x y z w")
for x in range(0, 2):
for y in range(0, 2):
for z in range(0, 2):
for w in range(0, 2):
if not(((y <= w) == (x <= (not z))) and (x or w)):
print(x, y, z, w)
+++
print("x y z w")
for x in range(0, 2):
for y in range(0, 2):
for z in range(0, 2):
for w in range(0, 2):
if ((y <= w) == (x <= (not z))) and (x or w):
print(x, y, z, w)
Результаты:
X Y Z W
(0, 0, 0, 0),
(0, 0, 1, 0),
(0, 1, 0, 0),
(0, 1, 1, 0),
(1, 0, 1, 0),
(1, 0, 1, 1),
(1, 1, 0, 0),
(1, 1, 1, 1).
+++
X Y Z W
(0, 0, 0, 1),
(0, 0, 1, 1),
(0, 1, 0, 1),
(0, 1, 1, 1),
(1, 0, 0, 0),
(1, 0, 0, 1),
(1, 1, 0, 1),
(1, 1, 1, 0).
На эту табличку:
Решить я это могу, а теперь внимание! Вопрос - как это сопоставить с таблицей!?! Ничего толкового в интернете на этот счёт не нашёл