Помогите сдать ЕГЭ (Проблемы с номером 2)

Рейтинг: -3Ответов: 1Опубликовано: 10.06.2023

Мне тут уже совсем скоро сдавать ЕГЭ по информатике, а я так и не разобрался с некоторыми типами второго задания... Вот, например: Тип 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).

Однако, столбцов из кода больше, чем требуется в этой таблице: Таблица 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)

Здесь столбцов из кода ЗНАЧИТЕЛЬНО больше, чем требуется в этой таблице:

Таблица 2

А вот мой любимый пример:

((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).

На эту табличку:

Таблица 3

Решить я это могу, а теперь внимание! Вопрос - как это сопоставить с таблицей!?! Ничего толкового в интернете на этот счёт не нашёл

Ответы

▲ 0

Первый пример: заметим, что есть строки с одним нулем, тремя единицами, а также три нуля, одна единица. Сопоставляем, получаем что второй столбец 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. Удачи!