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