Логическая функция задаётся выражением:
Ниже представлен фрагмент таблицы истинности функции содержащий неповторяющиеся строки, при которых фукнция
ложна.
Определите, какому столбцу истинности функции соответствует каждая переменная .
Решение №:
Напишем программу:
print(’x y z’)
for x in range(2):
for y in range(2):
for z in range(2):
f = (y == (not(x))) <= ((z or x) == y)
if f == 0:
print(x, y, z)
Выведет таблицу:
Видим, что два раза принимает значение
, значит,
не
столбец. Кроме того, только
и
одновременно принимают значение
. Значит,
—
столбец, а
—
столбец. Остается, что
—
столбец.
Решение №:
Имеем, что импликация равняется нулю, это значит, что скобка слева должна равняться единице, а скобка справа нулю. Выражение равняется единице, когда
и
— это разные числа, 0 и 1 или 1 и 0. Запомним это. Выражение
равняется нулю, когди либо
равняется единице, а
и
одновременно нулю, либо
и
не равняются нулю одновременно, а
равняется нулю.
Значит нам подходят такие варианты, назовём эту таблицу «полученной таблицей», а таблицу из задания назовём «исходной» таблицей:
Понимаем, что единственная строчка с двумя единицами — это первая строка из исходной таблицы, принимает значение 0 в полученной таблице, а значит
это третий столбик в исходной таблице. Видим, что
принимает значение единицы в первой строке в полученной таблице, значит это последняя строка в исходной таблице, к сожалению это не даёт никакой информации, кроме того, что оставшяя строчка — это вторая строка и исходной таблице, и в полученной, только с другим порядком переменных. В полученной таблице
принимает значение нуля и
тоже принимает значение нуля, а
принимает значение единицы, но во второй строке исходной таблицы есть только нолик и пустое пространство, значит в этом пустом пространстве должна быть единица, а значит это
. Тогда
это первый столбик.