Нам дана функция
F = ((x → y) ∨ (z ≡ x)) ∧ (w → z)
и приведён фрагмент таблицы истинности с четырьмя столбцами (каждый столбец – это значение одной из переменных x, y, z, w) для трёх строк. Значения по столбцам записываются так:
1-й столбец: 0, 0, 0
2-й столбец: 0, 0, 1
3-й столбец: 1, 1, 1
4-й столбец: 1, 0, 1
При этом значения функции F для строк:
первая строка – 1,
вторая – 0,
третья – 0.
Наша задача – определить, какой из этих столбцов соответствует какой переменной (x, y, z, w) так, чтобы при подстановке в формулу функция давала описанные результаты.
Ниже разбе...
table = [
(0, 0, 1, 1), # строка 1
(0, 0, 1, 0), # строка 2
(0, 1, 1, 1) # строка 3
]
print(Строка | z w x y | F (вычисленное))
print(--------------------------------------)
for i, row in enumerate(table, start=1):
zal = bool(row[0])
wal = bool(row[1])
xal = bool(row[2])
yal = bool(row[3])
Вычисляем по формуле:
F = ((x → y) ∨ (z ≡ x)) ∧ (w → z)
part1 = implies(xval) or equiv(zval)
part2 = implies(wval)
F = part1 and part2
Представим значения как 0 или 1
print( {} | {} {} {} {} | {}.format(
i,
int(zval), int(xval),
int(F)
))
Запустив эту программу, мы получим следующие результаты по строкам:
Строка 1: z=0, w=0, x=1, y=1 → F = 1
Строка 2: z=0, w=0, x=1, y=0 → F = 0
Строка 3: z=0, w=1, x=1, y=1 → F = 0
что соответствует приведённой таблице.
──────────────────────────────
Итоговый ответ
Переменной z соответствует 1-й столбец, переменной w – 2-й столбец, переменной x – 3-й столбец, переменной y – 4-й столбец таблицы истинности функции F.