Логическая функция F задается выражением:
Определите, какому столбцу таблицы истинности функции F соответствует каждая из пемеменных .
В ответе напишите буквы в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т.д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Решение с использованием itertools:
from itertools import product
print("x y z w F")
for x, y, z, w in product([0, 1], repeat = 4):
if (not z or (y == w) or (not w and x)) == 0:
print(x, y, z, w, 0)
Классическое решение:
print(’x y z w’)
for x in range(2):
for y in range(2):
for z in range(2):
for w in range(2):
p = not z or (y == w) or (not w and x)
if p == 0:
print(x, y, z, w)
Программа выведет:
Заметим, что единственная строка, имеющая единицы — третья, а последнее число —
, т.е.
столбец — это
.
имеет
единицы, т.е. единственный возможный вариант — это
столбец. В
две единицы и один ноль, значит,
—
столбец, а
—
столбец.
Получаем ответ: