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

