有没有好的布尔表达式简化器?[关闭]


110

我在重构旧代码时遇到了几种IF条件,这些条件过于复杂和漫长,我敢肯定它们可以简化。我的猜测是,由于后来的修改,这些条件增长了很多。

无论如何,我想知道您是否知道我可以使用一个好的在线简化程序。我对任何特定的语言都不感兴趣,只是一个简化器,例如:

((A或B)AND(!B AND C)或C)

并给我表达式的简化版本(如果有)。

我已经看过其他类似的问题,但是没有一个问题指向我一个很好的简化器。

谢谢。


1
WolframAlpha的也到达Ç。没有多余的门...
Axel Kemper

1
有一个不错的在线工具-tma.main.jp/logic/index_en.html
罗曼·霍克

另一个工具是boolean-algebra.com,它将显示解决问题的步骤。例如,您可以仅用吸收定律A + AB = A求解。它不是太高级,因此,如果需要除最小形式之外的其他内容,则最好使用其他站点。
约翰·史密斯,

Answers:


93

您可以根据您的输入,尝试使用Wolfram Alpha,如本例所示:

http://www.wolframalpha.com/input/?i=(((A%20OR%20B)%20AND%20(NOT%20B%20AND%20C)%20OR%20C)&t=crmtb01&f=rc


3
当布尔公式变得更加复杂时,该网站似乎并不能简化布尔公式。试试这个:(((NO C)AND(NO A))或((NO B)AND(NO C)AND(NO D)AND(NO A))或((NO B)AND(NO C)和D AND A)或(B AND C AND(NO D)和(NO A))或(B AND C AND D AND A))
Albert Hendriks

1
确实。奇怪。它甚至拒绝使用简化版本NOT C AND NOT A OR NOT B AND NOT C AND NOT D AND NOT A OR NOT B AND NOT C AND D AND A OR B AND C AND NOT D AND NOT A OR B AND C AND D AND A
500-内部服务器错误

2
请注意,如果要使用某些表并非总是输出的真值表,请在单词“真值表”后加上表达式开始查询
-Belgi

16

Try Logic Friday 1It包含来自加利福尼亚大学的工具(Espresso和misII),并使它们可与GUI一起使用。您可以根据需要输入布尔方程和真值表。它还具有图形化的门控图输入和输出。

最小化可以两级或多级进行。两级表单产生的乘积最小。多层形式创建由逻辑门组成的电路。门的类型可以由用户限制。

您的表情简化为C


2
对于快速的在线工具,这真的很有帮助:tma.main.jp/logic/index_en.html
Lenar Hoyt

6

我发现Boolean Expression Reducer比Logic Friday更容易使用。另外,它不需要安装,并且是多平台(Java)。

同样在Logic Friday中,该表达式A | B仅在真值表中返回3个条目。我期望4。


3
激活选项“Truthtable /显示所有行”,在逻辑周五1。否则,你只能得到与产值1.所有行
阿克塞尔肯珀

1
在内部,bexpred使用简单的算法合并最小项。它可能对小表达式有用,但绝对不是最新技术。
Axel Kemper 2015年

2
对于“ A * B *(!A * B +!A *!B)”输入,此jar返回SOP False,但POS True。不是完全可靠的脚本...
Evil

链接断开,谁可以正常工作?
HJLebbink '17
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.