Задание 2. Информатика. ЕГЭ. Шастин. 4.10.2024

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

(Д. Бахтиев) Петя заполнял таблицу истинности логической функции $$ F = ((a \to b) \equiv c) \lor d, $$ но успел заполнить лишь фрагмент из трёх различных её строк, не указав, какому столбцу таблицы соответствует каждая из переменных \(a\), \(b\), \(c\), \(d\).

????F
1010
1010
100

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

В ответе напишите буквы \(a\), \(b\), \(c\), \(d\) в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т.д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не надо.

Решение:

Python


from itertools import product, permutations

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

for p in permutations('abcd'):
    for m, n, q, s in product([0, 1], repeat=4):
        table = [[1, 0, 1, m, 0],
                 [1, 0, n, 1, 0],
                 [q, s, 1, 0, 0]]
        if table[0] == table[1] or table[0] == table[2]:
            continue
        if all(F(**dict(zip(p, row))) == row[-1] for row in table):
            print(*p)

Ответ: \(adbc\)