№2 С ДОСРОКА 2025
Задача:
Миша заполнял таблицу истинности логической функции F = x ∧ (z → w) ∧ ¬y, но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.
_ _ _ _ F
_ _ 1 _ 1
_ 1 0 _ 1
1 0 _ _ 1
Определите, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.
В ответе напишите буквы w, x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т.д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Решение:
def f(x, y, z, w):
return x and (z <= w) and (not(y))
from itertools import *
for a in product([0, 1], repeat=7):
table = [(a[0], a[1], 1, a[2]), (a[3], 1, 0, a[4]), (1, 0, a[5], a[6])]
if len(table) == len(set(table)):
for p in permutations('xyzw'):
if [f(**dict(zip(p, row))) for row in table] == [1, 1, 1]:
print(''.join(p))
#информатика