1 год назад
Кто шарит на Python
Задание ЕГЭ. Выражение ((x → y) ∧ (z ∨ w)) → ((x ≡ w) ∨ (y ∧ ¬z)).
В итоге ответ не тот, что нужен. Объясните в чём ошибка или, что я не понимаю.
Код для решения задания:
def f(x, y, z, w):
l1 = x <= y
l2 = z or w
l3 = x == w
l4 = y and (not z)
return int(l1 and l2 <= l3 or l4)
print('x y z w | f(x, y, z, w)')
for x in 0, 1:
for y in 0, 1:
for z in 0, 1:
for w in 0, 1:
if f(x, y, z, w) == 0:
print(x, y, z, w, '|', f(x, y, z, w))
Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
1
return int((l1 and l2) <= (l3 or l4))
Ты про приоритеты операций забыл. В результате у тебя выражение равно:
l1 and (l2 <= l3) or l4
123456789101112
def f(x, y, z, w):
l1 = (not x or y) and (z or w)
l2 = (x == w) or (y and (not z))
return int(l1 <= l2)
print('x y z w | f(x, y, z, w)')
for x in 0, 1:
for y in 0, 1:
for z in 0, 1:
for w in 0, 1:
if f(x, y, z, w) == 0:
print(x, y, z, w, '|', f(x, y, z, w))
Больше по теме