Логическая функция F задаётся выражением ((x → y) ≡ (y → z)) ∧ (y ∨ w).
Дан частично заполненный фрагмент, содержащий неповторяющиеся строки таблицы истинности функции F.
Определите, какому столбцу таблицы истинности соответствует каждая из переменных x, y, z, w.
| Переменная 1 | Переменная 2 | Переменная 3 | Переменная 4 | Функция |
|---|---|---|---|---|
| ??? | ??? | ??? | ??? | F |
| 0 | 0 | 1 | ||
| 0 | 0 | 0 | 1 | |
| 0 | 1 |
В ответе напишите буквы x, y, z, w в том порядке, в котором идут соответствующие им столбцы (сначала — буква, соответствующая первому столбцу; затем — буква, соответствующая второму столбцу, и т. д.). Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Пример. Пусть задано выражение x → y, зависящее от двух переменных x и y, и фрагмент таблицы истинности:
| Переменная 1 | Переменная 1 | Функция |
|---|---|---|
| ??? | ??? | F |
| 0 | 1 | 0 |
Тогда первому столбцу соответствует переменная y, а второму столбцу соответствует переменная x. В ответе нужно написать: yx.
Рассмотрим данное выражение. Преобразуем логическое выражение ((x → y) ≡ (y → z)) ∧ (y ∨ w) и получим систему, при которой оно истинно:
Заметим, что четвёртый столбец таблицы истинности — это y, тогда третий столбец таблицы истинности — это переменная w. Из условия следует, что переменная x соответствует первому столбцу таблицы истинности, а переменная z соответствует второму столбцу таблицы истинности.
Ответ: xzwy.
Примечание.
Рассмотрим, как будет выглядеть полная таблица истинности. Одна из переменных y или w должна принимать значение 1, поэтому в третьем столбце во второй и третьей строках будут стоять единицы и в четвёртом столбце в первой строке будет стоять единица. Исходя из условия можно заключить, что в первом столбце в последней строке будет стоять ноль, а в первой строке второго столбца будет стоять единица. В последней строке второго столбца должна стоять единица, поскольку строки в таблице истинности должны быть разными.
| Перем. 1 | Перем. 2 | Перем. 3 | Перем. 4 |
|---|---|---|---|
| ??? | ??? | ??? | ??? |
| 0 | 1 | 0 | 1 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 1 | 0 |
Вариант xzyw не подходит, поскольку во второй строке функция F окажется ложной.
Приведем другое решение.
Составим таблицу истинности для выражения ((x → y) ≡ (y → z)) ∧ (y ∨ 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 <= y) == (y <= z)) and (y or w):
print(x, y, z, w)
Далее выпишем те наборы переменных, при которых данное выражение равно 1. В наборах переменные запишем в порядке х, y, z, w.
Получим следующие наборы:
(0, 0, 0, 1),
(0, 0, 1, 1),
(0, 1, 1, 0),
(0, 1, 1, 1),
(1, 1, 1, 0),
(1, 1, 1, 1).
Сопоставим эти наборы с приведенным в задании фрагментом таблицы истинности.
Вторая строка таблицы истинности содержит три нуля, следовательно, она может соответствовать только набору (0, 0, 0, 1), тогда в третьем столбце второй строки стоит 1 и третий столбец соответствует переменной w.
Рассмотрим первую строку таблицы. В ней переменная w принимает нулевое значение, и есть еще одна переменная, принимающая нулевое значение, значит, эта строка может соответствовать только набору (0, 1, 1, 0), тогда первый столбец соответствует переменной x.
Рассмотрим третью строку таблицы. В ней одна из переменных y или z принимает нулевое значение, значит, эта строка может соответствовать только набору (0, 0, 1, 1) и четвертый столбец соответствует переменной y, тогда второй столбец соответствует переменной z.
Получаем xzwy.

