Логическая функция F задаётся выражением:
(x ∧ ¬z) ∨ (x ∧ y ∧ z).
На рисунке приведён фрагмент таблицы истинности функции F, содержащий все наборы аргументов, при которых функция F истинна. Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных x, y, z.
| Перем. 1 | Перем. 2 | Перем. 3 | Функция |
|---|---|---|---|
| ??? | ??? | ??? | F |
| 0 | 0 | 1 | 1 |
| 1 | 0 | 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 = 1, то тогда y обязательно должен быть 0, чтобы таблица была справедлива. Если y = 0, то ¬z обязательно должен быть равен 1. На основе этих утверждений сопоставим оставшиеся столбцы.
Ответ: yzx.
Приведём другое решение на языке Python.
Составим таблицу истинности для выражения (x ∧ ¬z) ∨ (x ∧ y ∧ z). Выпишем те наборы переменных, при которых данное логическое выражение равно 1. В наборах переменные стоят в порядке x, y, z. Итак, эти наборы:
(1, 0, 0),
(1, 1, 0),
(1, 1, 1).
Соотнесём эти наборы с представленным фрагментом таблицы истинности.
Видно, что во всех случаях x принимает значение 1, следовательно, эта переменная относится к третьему столбцу фрагмента данной таблицы истинности. Переменная y принимает значения 0,1,1, поэтому это первый столбец. Переменная z принимает значения 0,0,1, поэтому это второй столбец. Получаем последовательность yzx.
Составим таблицу истинности при помощи языка 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 not(z)) or (x and y and z):
print(x, y, z)

