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

