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

