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

Просмотры: 114
Изменено: 24 ноября 2024

Логические функции \(F_1\) и \(F_2\) задаются выражениями $$ F_1 = (w \to z) \equiv (y \to x), \quad F_2 = (w \to z) \land (\neg x \equiv y). $$ На рисунке приведён частично заполненный фрагмент таблицы истинности этих функций, содержащий неповторяющиеся строки. Определите, какому столбцу таблицы истинности соответствует каждая из переменных \(x\), \(y\), \(z\), \(w\).

????\(F_1\)\(F_2\)
0000
0110
00001

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

Решение:

Python


from itertools import product, permutations

def F1(x, y, z, w):
    return (w <= z) == (y <= x)

def F2(x, y, z, w):
    return (w <= z) and ((not x) == y)

for p in permutations('xyzw'):
    for a, b, c, d, e in product([0, 1], repeat=5):
        table = [(a, 0, 0, 0, 0, b),
                 (c, 0, 1, 1, d, 0),
                 (0, 0, e, 0, 0, 1)]
        if len(set(table)) < 3:
            continue
        if all(F1(**dict(zip(p, row))) == row[-2]
               and F2(**dict(zip(p, row))) == row[-1] for row in table):
            print(*p)

Ответ: \(wzxy\)