Задача #2215
Таблица истинности
(Е.Джобс) Логическая функция задаётся выражением (a→b)∧(b→¬c)∧(¬c→d)
На рисунке приведён частично заполненный фрагмент таблицы истинности функции , содержащий неповторяющиеся строки. Определите, какому столбцу таблицы истинности функции соответствует каждая из переменных .
| ? | ? | ? | ? | F |
| 1 | 1 | |||
| 1 | 1 | 1 | ||
| 1 | 1 | 1 | 1 |
В ответе напишите буквы в том порядке, в котором идут соответствующие им столбцы. Буквы в ответе пишите подряд, никаких разделителей между буквами ставить не нужно.
Войдите, чтобы история ответов и статистика сохранялись.
Решение
Ответ
dcba
Видео по задаче
def f(a, b, c, d):
return (a <= b) and (b <= (not c)) and ((not c) <= d)
from itertools import permutations, product
# перебор всех возможных вариантов заполнения пропусков for a1, a2, a3, a4, a5, a6 in product([0, 1], repeat=6): # формирование таблицы с заполненными пропусками table = [(1, a1, a2, a3), (1, a4, 1, a5), (1, a6, 1, 1)] # если количество строк в таблице не равно количеству уникальных # значит есть дублирующиеся строки if len(table) != len(set(table)): # поэтому перебираем следующий вариант заполнения пропусков continue for p in permutations('abcd'): if [f(**dict(zip(p, row))) for row in table] == [1, 1, 1]: print(*p, sep ='')
Полный разбор