那里有任何好的布尔表达式简化器吗?

moj*_*ras 103 boolean-logic boolean-expression

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

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

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

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

我看过其他类似的问题但是没有人指出一个好的简化器.

谢谢.

500*_*ror 90

您可以根据您的输入尝试Wolfram Alpha,就像在此示例中一样:

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

  • 当网站变得更复杂时,网站似乎不太适合简化布尔公式.试试这个:(((不是C)和(不是A))或((不是B)和(不是C)和(不是D)和(不是A))或((不是B)和(不是C)和D和A)或(B和C和(非D)和(不是A))或(B和C和D和A)) (3认同)
  • 的确。奇怪的。它甚至在简化版本“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 和 A`。 (2认同)
  • 请注意,如果您想要真值表(对于某些表达式并不总是输出),则使用"真值表"后跟表达式启动查询 (2认同)

Axe*_*per 16

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

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

你的表达简化为C.

  • 对于快速在线工具,这非常有用:http://tma.main.jp/logic/index_en.html (2认同)

Paw*_*iel 6

我发现布尔表达式减速器比Logic Friday更容易使用.此外,它不需要安装,并且是多平台(Java).

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

  • 在Logic Friday 1中激活选项"Truthtable/Show all Rows".否则,您只获得输出值为1的所有行. (3认同)
  • 对于"A\*B\*(!A\*B +!A\*!B)"输入此jar返回SOP False但POS为True.不完全可靠的脚本...... (2认同)