Задача к ЕГЭ по информатике на тему «частично заполненный фрагмент таблицы» №1

Логическая функция F  задается выражением:

                  ------- F = ((x → y) → z)∧ (z ≡ w) ∧x

Ниже представлен фрагмент таблицы истинности функции F,  содержащий неповторяющиеся строки, при которых фукнция F  истинна.

??? ??? ??? ??? F
1 1 1 1
0 1 1
1 0 0 1

Определите, какому столбцу таблицы соответствует каждая из переменных w, x, y, z. В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т.д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.

Решение с использованием itertools:

from itertools import product

print("x y z w")
for x, y, z, w in product([0, 1], repeat = 4):
    if (not(not(x) or y) or z) and not(z==w) and x:
        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 (not(not(x) or y) or z) and not(z == w) and x:
                    print(x, y, z, w)

Результат работы программы:

|--|--|--|---| |x-|y-|z-|w--| |-1|0-|0-|1--| |-1|0-|1-|0--|  -1-1--1--0---

Из таблицы видно, что только x  имеет все три единицы, значит, ему соответсвует столбец 3 (так как во всех других уже есть нули).

Буква z  в отличие от других имеет две единицы и один нуль. Значит, ей соответствует первый столбец.

В третьей строке 1110 только буква w  равна 0, эту строку можем сопоставить с первой строкой в нашем условии, значит, буква w  стоит в четвертом столбце.

Остаётся буква y  , которая будет стоять во втором столбце, так как все остальные уже заняты.

Получаем ответ: zyxw  .

Ответ: zyxw
Оцените статью
Я решу все!