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

Просмотры: 281
Изменено: 1 февраля 2025

(А. Богданов) Логическая функция F задаётся выражением (xyz)(x(yw)). На рисунке приведён частично заполненный фрагмент таблицы истинности функции F, содержащий неповторяющиеся строки. Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z, w.

????F
1000
110
1110

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

Решение:

Python


from itertools import product, permutations

def F(x, y, z, w):
    return (x or y or z) <= (x and (y or w))

for p in permutations('xyzw'):
    for a, b, c, d in product([0, 1], repeat=4):
        table = [[1, 0, a, 0, 0],
                 [b, 1, 1, c, 0],
                 [1, 1, d, 1, 0]]
        if table[0] == table[1]:
            continue
        if all(F(**dict(zip(p, row))) == row[-1] for row in table):
            print(*p)

Ответ: yzxw