Задание 2. Информатика. ЕГЭ. Поляков-6616
- Просмотры: 123
- Изменено: 24 ноября 2024
(Е. Джобс) Логические функции \(F_1\) и \(F_2\) задаются выражениями $$ F_1 = (x \to y) \lor (\neg w \equiv z), \quad F_2 = (x \to y) \equiv (w \land \neg z). $$ На рисунке приведёны частично заполненные три различные строки таблицы истинности этих функций, в которых значения функций \(F_1\) и \(F_2\) равны.
? | ? | ? | ? | \(F_1\) | \(F_2\) |
---|---|---|---|---|---|
0 | p | p | |||
0 | 0 | q | q | ||
0 | 0 | 0 | r | r |
В ответе напишите буквы \(x\), \(y\), \(z\), \(w\) в том порядке, в котором идут соответствующие им столбцы. Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Решение:
Python
from itertools import product, permutations
def F1(x, y, z, w):
return (x <= y) or ((not w) == z)
def F2(x, y, z, w):
return (x <= y) == (w and (not z))
for p in permutations('xyzw'):
for a, b, c, d, e, f in product([0, 1], repeat=6):
table = [[a, b, c, 0],
[d, e, 0, 0],
[f, 0, 0, 0]]
if table[0] == table[1] or table[0] == table[2] or table[1] == table[2]:
continue
if all(F1(**dict(zip(p, row))) == F2(**dict(zip(p, row))) for row in table):
print(*p)
Ответ: \(wyxz\)