使用python,将一串AND和OR转换为disjunctive normal form(也称为“乘积之和”)的最佳方法是什么?
b AND (c OR (a AND d))
成为
(b AND c) OR (b AND a AND d)
我也想按字典顺序对这些排序
(a AND b AND d) OR (b AND c)
也许该库可以帮助:pyeda
这里是将表达式转换为DNF的方法:to_dnf()
to_dnf()
当然,您必须将字符串转换为有效的pyeda表达式...
这里是部分回答问题的样本(即不是解析/排序)