Решение на Python:
Составим таблицу истинности для выражения вручную или при помощи языка Python:
from itertools import product
print("o e m w")
for e, m, o, w in product((0, 1), repeat=4):
if not (((not m) or e) or (o == e) and w):
print(o, e, m, w)
Далее выпишем те наборы переменных, при которых данное выражение равно 0.
В наборах переменные запишем в порядке o, e, m, w.
Получим следующие наборы:
(0, 0, 1, 0),
(1, 0, 1, 0),
(1, 0, 1, 1),
Сопоставим эти наборы с приведённым в задании фрагментом таблицы истинности.
Поскольку только переменная e принимает значение 0 во всех строках, то ей соответствует 2-й столбец.
Поскольку только переменная m принимает значение 1 во всех строках, то ей соответствует 3-й столбец.
Рассмотрим строку таблицы истинности №2. Заметим, что только она может соответствовать набору (0, 0, 1, 0). Так как единственное значение 1 среди переменных принимает переменная m, то ей соответствует 3-й столбец.
Рассмотрим оставшиеся строки таблицы истинности. Тогда 4-й столбец соответствует переменной w, а 1-й столбец — переменной o.
Следовательно, переменные идут по столбцам в порядке oemw.
Логическое решение:
Шаг 1. Находим столбец e
Во всех найденных наборах переменная e принимает значение 0.
В таблице этому соответствует 2-й столбец.
2-й столбец — это e.
Шаг 2. Что должно выполняться в остальных столбцах
Остаются условия:
- not (((¬m) ∨ e) ∨ (o ≡ e) ∧ w) = 1
Важно: каждая строка таблицы должна гарантировать выполнение этих условий, а не «позволять подобрать значения».
Шаг 3. Подбор переменных
Если считать:
- 1-й столбец — o
- 2-й столбец — e
- 3-й столбец — m
- 4-й столбец — w
то во всех 3 строках фрагмента условия выполняются.
Итоговый ответ
Переменные идут по столбцам в порядке:
oemw