Логическая функция F задаётся выражением:
(x ∧ z) ∨ (x ∧ ¬y ∧ ¬z).
На рисунке приведён фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F истинна. Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z.
| Перем. 1 | Перем. 2 | Перем. 3 | Функция |
|---|---|---|---|
| ??? | ??? | ??? | F |
| 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
В ответе напишите буквы x, y, z в том порядке, в котором идут соответствующие им столбцы (сначала буква, соответствующая первому столбцу, затем — буква, соответствующая второму столбцу, и т. д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Пример. Пусть задано выражение x →y , зависящее от двух переменных — x и y, и таблица истинности:
| Перем. 1 | Перем. 2 | Функция |
|---|---|---|
| ??? | ??? | F |
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
Тогда первому столбцу соответствовала бы переменная y, а второму столбцу — переменная x. В ответе следовало бы написать: yx.
(x ∧ z) ∨ (x ∧ ¬y ∧ ¬z).
Заметим, чтобы F всегда было 1 нужно, чтобы x тоже всегда был 1, поскольку он идет в паре с ∧ в обоих случаях.
Если z = 0, то тогда ¬y обязательно должно быть 1, чтобы таблица была справедлива, а если ¬y = 0, то z обязательно должен быть равен 1. На основе этих утверждений сопоставим оставшиеся столбцы.
Ответ: yxz.
Приведём другое решение на языке Python.
Составим таблицу истинности для выражения (x ∧ z) ∨ (x ∧ ¬y ∧ ¬z). Выпишем те наборы переменных, при которых данное логическое выражение равно 1. В наборах переменные стоят в порядке x, y, z. Итак, эти наборы:
(1, 0, 0),
(1, 0, 1),
(1, 1, 1).
Соотнесём эти наборы с представленным фрагментом таблицы истинности.
Видно, что во всех случаях x принимает значение 1, следовательно, эта переменная относится ко второму столбцу фрагмента данной таблицы истинности. Переменная y принимает значения 0,0,1, поэтому это первый столбец. Переменная z принимает значения 0,1,1, поэтому это третий столбец. Получаем последовательность yxz.
Составим таблицу истинности при помощи языка Python:
print("x y z ")
for x in range(0, 2):
for y in range(0, 2):
for z in range(0, 2):
if (x and z) or (x and not(y) and not(z)):
print(x, y, z)

