Помогите сдать ЕГЭ (Проблемы с номером 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).
На эту табличку:
Решить я это могу, а теперь внимание! Вопрос - как это сопоставить с таблицей!?! Ничего толкового в интернете на этот счёт не нашёл
Ответы (1 шт):
Первый пример: заметим, что есть строки с одним нулем, тремя единицами, а также три нуля, одна единица. Сопоставляем, получаем что второй столбец X( т. к три единицы и один ноль, который выдал нам X), получаем третий столбец W, поскольку одна единица соответствует W. Заметим ,что остался столбец, в котором 2 нуля 100 % существуют, при этом, столбец Z имеет 1 ноль. Делаем вывод. Второй пример: заметим, что строк со всеми нулями и единицами не может быть, вычеркиваем. Наблюдаем 2 единицы в одной из строк. Сопоставим с данными из таблицы и заметим, что 1 и 4 столбцы могут быть z/w, а 2 и 3 x/y из соображений строки 0 1 1 0. берем 2 строку, которая * 1 0 *. и нетрудно заметить, что в таблице у Z 3 нуля, у W 1 ноль => последний столбец W => первый столбец Z.Смотрим на полученную программой таблицу, а именно в 3 строку, там и ответ на Y X. Удачи!

