Top.Mail.Ru
Ответы

Кто шарит на 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))