Логическая функция F задается выражением:
Ниже представлен фрагмент таблицы истинности функции F, содержащий неповторяющиеся строки, при которых фукнция F истинна.
??? | ??? | ??? | F |
0 | 1 | 0 | 1 |
0 | 1 | 1 | |
1 | 1 | 1 | |
Определите, какому столбцу таблицы соответствует каждая из переменных x, y, z. В ответе напишите буквы x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу; затем буква, соответствующая второму столбцу, и т.д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
print(’x y z’)
a = (0, 1)
for x in a:
for y in a:
for z in a:
if ((not(x) or y or not(z)) and (not(x) == (not(y) or z))) == True:
print(x, y, z)
По таблице истинности видно, что выражение должно быть истино. Для того, чтобы выражение было равно 1, нужно чтобы и первая, и вторая часть выражения также были равны 1:
Рассмотрим первое выражение. Оно будет истино, если хотя бы один из элементов будет равен 1. Напишем возможные варианты:
x | y | z |
0 | 0 | 0 |
0 | 0 | 1 |
0 | 1 | 0 |
0 | 1 | 1 |
1 | 0 | 0 |
1 | 1 | 0 |
1 | 1 | 1 |
Рассмотрим второе выражение. Оно будет истино, если обе части равны (либо обе равны 0, либо обе равны 1). Напишем возможные варианты:
x | y | z |
0 | 0 | 0 |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 0 |
Выпишем совпадающие строки:
x | y | z |
0 | 0 | 0 |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 1 | 0 |
Можно заметить, что в таблице истинности каждая строка содержит хотя бы одну единицу. Значит, строка из трех нулей нам не подходит.
Далее видим, что в таблице истинности есть заполненная первая строчка 010, в нашей получившейся таблице такая строчка только одна, в ней z = 1, значит, z стоит во втором столбце.
Во второй строчке таблицы истинности z = 1, в нашей получившейся таблице осталась только одна строчка, где z = 1, в ней x = 0 и y = 1. Тогда сопоставим с таблицей истинности и получим, что х принадлежит первому столбцу, а у принадлежит третьему.
Ответ: xzy