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

