Логическая функция задается выражением:
Ниже приведён частично заполненный фрагмент таблицы истинности функции , содержащий неповторяющиеся наборы аргументов, при которых функция
ложна. Определите, какому столбцу таблицы истинности функции
соответствует каждая из переменных
и
.
Решение программой:
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):
f = ((x == (not(y))) <= (y and not(z))) or (z and not(w))
if f == 0:
print(x, y, z, w)
Программа выведет:
Только три раза принимает значене
, значит,
— это
столбец, так как остальным переменным нужно в одной из ячеек обязательно использовать
и больше нет переменных, которые
раза равны
. Два раза значение
принимает только
, значит,
— это
столбец по той же логике, что и с
. Можем увидеть, что
принимает значение
, только когда все остальные равны
, а такую строку мы получить не можем никак в исходной таблице, где-то, в любом случае, есть
. Получаем, что
— это
столбец, а
— это
. Ответ:
.
Решение руками:
Выпишем полную таблицу истинности по шагам:
|
|
|
|
|
|
|
|
|
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 |
0 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 1 |
0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 |
0 | 1 | 0 | 0 | 1 | 1 | 0 | 1 | 1 |
0 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 1 |
0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 |
1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 |
1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 1 |
Оставим только те строки, которые дают в результате 0:
Дальнейшее аналитическое рассуждение аналогично рассуждению из решения программой.