Задание 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\) |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 1 | |
0 | 0 | 1 | 0 | 0 | |
0 | 1 | 1 | 0 |
В ответе напишите буквы \(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\)