Задание 2. Информатика. ЕГЭ. Поляков-6246

Просмотры: 28
Изменено: 30 октября 2024

(PRO100 ЕГЭ) Логическая функция \(F\) задаётся выражением $$ \neg (x \to w) \lor (y \to z) \lor \neg y. $$ На рисунке приведён частично заполненный фрагмент таблицы истинности функции \(F\), содержащий неповторяющиеся строки. Определите, какому столбцу таблицы истинности функции \(F\) соответствует каждая из переменных \(x\), \(y\), \(z\), \(w\).

????F
00
010
100

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

Решение:

Дизъюнкция термов равна нулю, значит каждый из них равен нулю на каждой строке таблицы. Тогда \(\neg y = 0 \Rightarrow y = 1\), т.е. \(y\) — это третий столбец. Отсюда, \(y \to z = 0 \Rightarrow z = 0\), т.е. \(z\) — 4-й столбец. \( x \to w = 0\) при \(x = 1, \, w = 0\). Чтобы этого не случилось, полагаем \(x\) — первый столбец, \(w\) — второй столбец.

Python


from itertools import product, permutations

def F(x, y, z, w):
    return (not (x <= w)) or (y <= z) or (not y)

for p in permutations('xyzw'):
    for a, b, c, d, e, f, g in product([0, 1], repeat=7):
        table = [[a, 0, b, c, 0],
                 [0, 1, d, e, 0],
                 [1, f, g, 0, 0]]
        if table[0] == table[2]:
            continue
        if all(F(**dict(zip(p, row))) == row[-1] for row in table):
            print(*p)

Ответ: \(xwyz\)