Логическая функция F задаётся выражением . На рисунке приведён частично заполненный фрагмент таблицы истинности функции F, содержащий неповторяющиеся строки. Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, w, z.
Переменная 1 | Переменная 2 | Переменная 3 | Переменная 4 | Функция |
1 | 0 | 1 | ||
0 | 1 | 1 | ||
1 | 1 | 1 | ||
В ответ напишите буквы x, y, w, z в том порядке, в котором идут соответствующие им столбцы. В ответ буквы запишите подряд – без пробелов и разделителей.
Так как функция F должна быть равна 1, то три выражения: w, и
должны быть равны 1. Отсюда можно абсолютно точно сказать, что w может быть только 1, а z – только 0.
будет равно 1, если обе скобки либо 0, либо 1. Но, вторая скобка Всегда равна 1, так как z = 0 из найденного выше. Получаем, что первая скобка
должна быть равна 1. Это происходит при таком наборе данных:
x y
1 1
0 0
1 0
Получаем общий набор для функции F:
x y w z
1 1 1 0
1 0 1 0
0 0 1 0
Сопоставив его с данной таблицей получаем, что в первом столбце стоит переменная х, во втором – w, в третьем – z и в четвертом – y.
Ответ: xwzy.
Программное решение:
print("x y z w")
for x in range(0, 2):
for y in range(0, 2):
for z in range(0, 2):
for w in range(0, 2):
if w and not(z) and (y <= x) == (z <= y):
print(x, y, z, w)