Syntaxe
~
pas
/\
et
\/
ou
t
vrai
f
faux
P
, Q
, FISH
, etc: les variables
(Les opérateurs sont indiqués par ordre de priorité)
introduction
Certaines formules booléennes peuvent être modifiées en différentes formes pour les raccourcir. Par exemple, la formule
~(~P /\ ~Q)
peut être changé en forme plus courte
P\/Q
tandis que la formule
P \/ ~P
peut être changé en forme plus courte
t
Défi
Dans ce défi, vous devez écrire un programme qui, étant donné une formule booléenne en utilisant seulement /\
, \/
, ~
, t
, f
, entre parenthèses, les variables booléennes (en majuscules), et les espaces, émet une forme plus courte (car il peut y avoir plus d'une forme plus courte ) en caractères de cette expression qui est équivalente pour toutes les affectations des variables. Le code le plus court (dans n'importe quelle langue) gagne. Les E / S peuvent être effectuées de toute manière raisonnable.
De plus, comme les réponses sont difficiles à vérifier, il serait utile (mais pas obligatoire) d'inclure une brève explication du fonctionnement du code.
BooleanMinimize
)
b9c98d088b78c30bb2108008a064a7b95722a4694d90ddad94a025c2eb4ed30a
. Je posterai le code réel à une date ultérieure, car je ne veux pas étouffer la créativité.