有什么好的布尔表达式简化器吗?[已结束]

Any good boolean expression simplifiers out there? [closed]

提问人:mojarras 提问时间:2/16/2013 更新时间:3/25/2018 访问量:342622

问:


我们不允许向读者、工具、软件库等寻求推荐的问题。您可以编辑问题,以便用事实和引文来回答。

8年前关闭。

我正在重构旧代码,遇到了几个过于复杂和冗长的 IF 条件,我确信它们可以简化。我的猜测是,由于后来的修改,这些条件增长得如此之快。

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

((A 或 B) 和 (!B 和 C) 或 C)

如果有的话,请给我一个简化版本的表达式。

我看过其他类似的问题,但没有一个问题能给我指出一个好的简化器。

谢谢。

逻辑布尔 表达式

评论

1赞 Axel Kemper 10/8/2013
WolframAlpha 也到达了 C。没有额外的门......
1赞 Roman Hocke 5/18/2017
有一个很好的在线工具 - tma.main.jp/logic/index_en.html
0赞 John Smith 10/15/2019
另一个工具是 boolean-algebra.com 它将显示解决它的步骤。例如,你的可以只用吸收定律 A+AB = A 来求解。它不是太高级,所以如果你需要最小形式以外的东西,那么你最好使用另一个网站。
0赞 Anderson Green 11/23/2022
这个问题应该发布在 softwarerecs.stackexchange.com 上,而不是 Stack Overflow。

答:

17赞 Axel Kemper 2/16/2013 #1

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

最小化可以进行两级或多级。两级形式产生最小化的产品总和。多级形式创建了一个由逻辑门组成的电路。门的类型可以由用户限制。

您的表达式简化为 。C

评论

2赞 Lenar Hoyt 4/6/2017
对于一个快速的在线工具,这真的很有帮助:tma.main.jp/logic/index_en.html
0赞 Anderson Green 10/26/2020
有一些计算机代数系统可以使用 Quine-McCluskey 算法简化布尔表达式,例如 Sympy
1赞 Axel Kemper 10/26/2020
Quine-McCluskey 是两级最小化的鼻祖。浓缩咖啡在 30 年后的 1986 年问世。了解这一领域的最新发展会很有趣。
100赞 500 - Internal Server Error 2/16/2013 #2

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

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

评论

4赞 Albert Hendriks 3/18/2016
当它们变得更复杂时,该网站似乎不太适合简化布尔公式。试试这个: (((NOT C) AND (NOT A)) OR ((NOT B) AND (NOT C) AND (NOT D) AND (NOT A)) OR ((NOT B) AND (NOT C) AND (NOT C) AND D AND A) OR (B AND C AND (NOT D) AND (NOT A)) OR (B AND C AND (NOT D) AND (NOT A)) OR (B AND C AND D AND A))
2赞 500 - Internal Server Error 3/18/2016
事实上。奇怪。它甚至在简化版本上咆哮.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
2赞 Belgi 5/20/2017
请注意,如果您想要真值表(某些表达式并不总是输出真值表),则使用单词“真值表”后跟表达式开始查询
8赞 Pawel Dubiel 11/6/2013 #3

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

同样在 Logic Friday 中,表达式只返回真值表中的 3 个条目;我预计 4.A | B

评论

3赞 Axel Kemper 12/16/2013
激活 Logic Friday 1 中的选项“Truthtable/Show all Rows”。否则,您只能获取输出值为 1 的所有行。
1赞 Axel Kemper 9/24/2015
在内部,bexpred 使用简单的算法来合并 minterms。它可能对小表达式有帮助,但绝对不是最先进的。
3赞 Evil 12/7/2016
对于“A*B*(!A*B+!一个*!B)“ input this jar 返回 SOP False,但 POS True。不完全可靠的脚本...
0赞 HJLebbink 12/6/2017
链接坏了,谁有工作链接?