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

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

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

????\(F_1\)\(F_2\)
0pp
00qq
000rr

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

Решение:

Python


from itertools import product, permutations

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

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

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

Ответ: \(wyxz\)