Składnia
~
nie
/\
i
\/
czy
t
prawdziwe
f
fałszywe
P
, Q
, FISH
itp: zmienne
(Operatory są podane w kolejności pierwszeństwa)
Wprowadzenie
Niektóre formuły logiczne można zmienić na różne formy, aby je skrócić. Na przykład formuła
~(~P /\ ~Q)
można zmienić na krótszą formę
P\/Q
podczas gdy formuła
P \/ ~P
można zmienić na krótszą formę
t
Wyzwanie
W tym wyzwaniem, które są wymagane, aby napisać program, który mając każdy logiczna formuły przy użyciu tylko /\
, \/
, ~
, t
, f
, nawiasów zmiennych logicznych (w wielkie litery), a spacje, wyjścia najkrótszej formy (ponieważ nie może być więcej niż jedna najkrótsza forma ) w znakach tego wyrażenia, które jest równoważne dla wszystkich przypisań zmiennych. Najkrótszy kod (w dowolnym języku) wygrywa. I / O można wykonać w dowolny rozsądny sposób.
Ponieważ odpowiedzi są trudne do zweryfikowania, pomocne byłoby (ale nie jest to wymagane) podanie krótkiego wyjaśnienia, jak działa kod.
BooleanMinimize
)
b9c98d088b78c30bb2108008a064a7b95722a4694d90ddad94a025c2eb4ed30a
. Właściwy kod opublikuję później, ponieważ nie chcę stłumić kreatywności.