Логическая функция задаётся выражением:
Составьте таблицу истинности. В качестве ответа введите количество строк, при которых
Решение программой
print("x, y, z")
def f(x, y, z):
return (x <= ((not y) == z)) == (z <= (not y))
for x in [0, 1]:
for y in [0, 1]:
for z in [0, 1]:
if f(x, y, z) == 0:
print(x, y, z)
Решение аналитически
В таблице строк.
1. Рассмотрим сначала вторую скобку. в случае, когда
В этом случае первая скобка должна быть истинной. Это произойдёт в случае
Значит в четвёртой строке таблицы истинности
2. Обратимся теперь к первой скобке. Она будет ложной в случае либо в случае
Второй вариант нас не устроит, так как импликация во второй скобке тоже будет ложной, а это значит, что
Проверкой первого случая убеждаемся в том, что
при данных значениях переменных. Значит функция примет значение 0 в пятой строке. Суммарно подходящих строк две.