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

Просмотры: 55
Изменено: 22 ноября 2024

(Е. Джобс) Логическая функция \(F\) задаётся выражением $$ \neg (b \to a) \land (c \to d) \lor (a \land b \land c \land \neg d). $$ На рисунке приведён частично заполненный фрагмент таблицы истинности функции \(F\), содержащий неповторяющиеся строки.

????F
0001
01
001
01

Определите, какому столбцу таблицы истинности функции \(F\) соответствует каждая из переменных \(a\), \(b\), \(c\), \(d\).

Решение:

Python


from itertools import permutations, product

def F(a, b, c, d):
    return (not (b <= a)) and (c <= d) or (a and b and c and (not d))

for p in permutations('abcd'):
    for a, b, c, d, e, f, g, h, i in product([0, 1], repeat=9):
        table = [(a, 0, 0, 0, 1),
                 (b, c, d, 0, 1),
                 (e, f, 0, 0, 1),
                 (g, 0, h, i, 1)]
        if len(set(table)) < 4:
            continue
        if all(F(**dict(zip(p, row))) == row[-1] for row in table):
            print(*p)

Ответ: \(bdca\)