Логическая функция задаётся выражением
Ниже представлен фрагмент таблицы истинности функции содержащий неповторяющиеся строки, при которых функция
ложна.
Определите, какому столбцу таблицы истинности функции соответствует каждая переменная
Решениие руками
В приведенном фрагменте во всех строках Функция представляет из себя два операнда дизъюнкции. Так как дизъюнкция ложна, если ложны все высказывания, входящие в нее, то (
= 0 и
Если то одно из высказываний должно быть ложным, а другое истинным (так как операнды связаны между собой операцией эквивалентности). Каждый из операндов представляет собой импликацию, которая ложна, если из истины следует ложь, и истинна в остальных случаях.
Если то
а
Так как
а
то
должна быть ложна (так как конъюнкция ложна, если ложно хотя бы одно из высказываний, входящих в нее). Тогда чтобы
была истинна,
тоже должна быть ложна (иначе
Значит, в таком случае
Если то
Значит,
Тогда
при любом
Составим таблицу истинности для
и
Из таблицы видим, что нам не подходит только последняя строка, так как при таких и
эквивалентность истинна, следовательно, одно из выражений, входящих в дизъюнкцию, тоже истинно.
Мы разобрали все случаи, при которых функция ложна. Выпишем строки таблицы истинности, где
Таблица 1.
Сопоставим таблицу 1 и фрагмент, приведенный в условии. Рассмотрим данную строку:
В ней все переменные равны 1 и только В третьей строке фрагмента из условия тоже есть три единицы и один ноль. Значит, четвертый столбец — это
Аналогично и с этой строкой:
Во второй строке фрагмента из условия тоже две единицы. Мы уже знаем, что четвертому столбцу соответствует значит, третьему столбцу соответствует
который должен быть равен нулю.
Осталось определить первый и второй столбцы. В фрагменте таблицы истинности из условия первый столбец всегда равен единице. Если внимательно посмотреть на таблицу 1, то можно увидеть, что равна 1 в трех строках. Остальные переменные равны 1 в двух строках и менее. Значит,
— это первый столбец фрагмента таблицы истинности из условия. Так как переменных всего 4, а три мы уже определили, то второй столбец — это
Решениие программой
print(’x y z w f’)
for x in range(2):
for y in range(2):
for z in range(2):
for w in range(2):
f = ((not(x) or y) == (not(z) or w)) or (x and w)
if f == False:
print(x, y, z, w, f)
В результате работы программы получим следующую таблицу:
x y z w f
0 0 1 0 0
0 1 1 0 0
1 0 0 0 0
1 1 1 0 0
В первом столбце должно быть три единицы, значит это однозначно буква . Во втором столбце точно должно быть минимум две единицы, если посмотреть на строки, где
истина, то на второе место однозначно подходит только
. Так как в третьем столбце должна быть хотя бы одна единица, туда однозначно встаёт только
. Ответ — zyxw.