Синтаксис
~не
/\и
\/или
tистинные
fложные
P, Q, FISHи т.д.: переменные
(Операторы даны в порядке приоритета)
Вступление
Некоторые логические формулы могут быть изменены в различные формы, чтобы сделать их короче. Например, формула
~(~P /\ ~Q)
можно изменить на более короткую форму
P\/Q
в то время как формула
P \/ ~P
можно изменить на более короткую форму
t
Вызов
В этих проблемах, вы должны написать программу , которая при любом булева формулы с использованием только /\, \/, ~, t, f, скобок, логические переменных (в верхнем регистре), и пробелов, выводит короткую форму (поскольку может быть больше одного кратчайшей формой ) в символах того выражения, которое эквивалентно для всех назначений переменных. Самый короткий код (на любом языке) выигрывает. Ввод / вывод может быть выполнен любым разумным способом.
Кроме того, поскольку ответы трудно проверить, было бы полезно (но не обязательно) включить краткое объяснение того, как работает код.
BooleanMinimize)
b9c98d088b78c30bb2108008a064a7b95722a4694d90ddad94a025c2eb4ed30a. Фактический код я опубликую позже, потому что не хочу задушить креативность.