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