Задание 2. Информатика. ЕГЭ. Поляков-6365
- Просмотры: 114
- Изменено: 24 ноября 2024
Логические функции \(F_1\) и \(F_2\) задаются выражениями $$ F_1 = (w \to z) \equiv (y \to x), \quad F_2 = (w \to z) \land (\neg x \equiv y). $$ На рисунке приведён частично заполненный фрагмент таблицы истинности этих функций, содержащий неповторяющиеся строки. Определите, какому столбцу таблицы истинности соответствует каждая из переменных \(x\), \(y\), \(z\), \(w\).
? | ? | ? | ? | \(F_1\) | \(F_2\) |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | ||
0 | 1 | 1 | 0 | ||
0 | 0 | 0 | 0 | 1 |
В ответе напишите буквы \(x\), \(y\), \(z\), \(w\) в том порядке, в котором идут соответствующие им столбцы. Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Решение:
Python
from itertools import product, permutations
def F1(x, y, z, w):
return (w <= z) == (y <= x)
def F2(x, y, z, w):
return (w <= z) and ((not x) == y)
for p in permutations('xyzw'):
for a, b, c, d, e in product([0, 1], repeat=5):
table = [(a, 0, 0, 0, 0, b),
(c, 0, 1, 1, d, 0),
(0, 0, e, 0, 0, 1)]
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)
Ответ: \(wzxy\)