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

Просмотры: 46
Изменено: 29 октября 2024

Логическая функция \(F\) задаётся выражением $$ (x \lor y \lor \neg z) \land (\neg x \lor y \lor \neg z) \land (\neg x \lor \neg y \lor z). $$ Определите, какому столбцу таблицы истинности функции \(F\) соответствует каждая из переменных \(x\), \(y\), \(z\).

???F
0001
0011
0101
0110
1000
1011
1100
1111

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

Решение:

Python


from itertools import permutations

def F(x, y, z):
    return (x or y or (not z)) and ((not x) or y or (not z)) and ((not x) or (not y) or z)

table = [[0,0,0,1],
         [0,0,1,1],
         [0,1,0,1],
         [0,1,1,0],
         [1,0,0,0],
         [1,0,1,1],
         [1,1,0,0],
         [1,1,1,1]]

for p in permutations('xyz'):
    if all(F(**dict(zip(p, row))) == row[-1] for row in table):
        print(*p)
    

Ответ: \(zxy\)