Задание №2: Таблицы истинности логических функций
Основные типы и прототипы задания №2:
Построение таблицы истинности
Частично заполненные фрагменты
Сопоставление строк и столбцов
Условие задания
(Е. Джобс) Логические функции F1 и F2 задаются выражениями
В ответе напишите буквы x, y, z, w в том порядке, в котором идут соответствующие им столбцы. Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
F1 = (x → y) ∨ (¬w ≡ z), F2 = (x → y) ≡ (w ∧ ¬z).На рисунке приведёны частично заполненные три различные строки таблицы истинности этих функций, в которых значения функций F1 и F2 равны.
Ответ:
wyxz
Шаблон решения на Python
# === Задание 2: Таблица истинности логической функции ===
from itertools import product, permutations
def f(x, y, z, w):
# Подставьте формулу из условия задания:
return (not(x <= y)) or (y == z) or not(w)
for a1, a2, a3, a4 in product([0, 1], repeat=4):
table = [
(a1, 0, 0, 1),
(0, a2, 1, 0),
(1, 0, a3, a4)
]
if len(set(table)) == len(table):
for p in permutations('xyzw'):
if all(f(**dict(zip(p, row))) == 0 for row in table):
print("Порядок переменных:", ''.join(p))