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

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

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

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

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

Решение:

Python


from itertools import product, permutations

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

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

for p in permutations('xyzw'):
    for a, b, c, d, e in product([0, 1], repeat=5):
        table = [(0, a, 0, 0, 0, 1),
                 (0, 0, 0, b, 0, c),
                 (0, 1, 1, d, e, 0)]
        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)

Ответ: \(yzxw\)