Синтаксис
~
НЕ
/\
і
\/
чи
t
справжні
f
помилкові
P
, Q
, FISH
і т.д .: змінні
(Оператори задаються в порядку черговості)
Вступ
Деякі булеві формули можна змінити на різні форми, щоб зробити їх коротшими. Наприклад, формула
~(~P /\ ~Q)
може бути змінено на більш коротку форму
P\/Q
при цьому формула
P \/ ~P
може бути змінено на більш коротку форму
t
Виклик
У цих проблемах, ви повинні написати програму , яка при будь-якому булева формули з використанням тільки /\
, \/
, ~
, t
, f
, дужок, логічні змінних (у верхньому регістрі), і прогалин, виводить коротку форму (оскільки може бути більше одного найкоротшою формою ) в символах цього виразу, який є рівнозначним для всіх призначень змінних. Найкоротший код (будь-якою мовою) виграє. Введення / виведення можна зробити будь-яким розумним чином.
Крім того, оскільки відповіді важко перевірити, було б корисно (але не потрібно) включити коротке пояснення того, як працює код.
BooleanMinimize
)
b9c98d088b78c30bb2108008a064a7b95722a4694d90ddad94a025c2eb4ed30a
. Я опублікую фактичний код пізніше, оскільки не хочу задушити творчість.