如何简化任意布尔表达式?

Posted

技术标签:

【中文标题】如何简化任意布尔表达式?【英文标题】:How to simplify an arbitrary boolean expression? 【发布时间】:2013-06-30 12:29:29 【问题描述】:

如何简化任意复杂的布尔表达式?

例如:

!(!a && !b || !a && b || a && !b) && !(!a && !b || !a && b || a && !b) ||
!(!a && !b || !a && b || a && !b) && (!a && !b || !a && b || a && !b) ||
(!a && !b || !a && b || a && !b) && !(!a && !b || !a && b || a && !b)

是一种非常冗长的说法:

a && b

我可以通过直观地使用布尔定律手动完成此操作。是否有程序化方法?

Wolfram Alpha 是如何做到的?

【问题讨论】:

【参考方案1】:

这就是简单的布尔代数

见: http://en.wikipedia.org/wiki/Binary_decision_diagram

http://en.wikipedia.org/wiki/Circuit_minimization

http://en.wikipedia.org/wiki/Karnaugh_map

【讨论】:

以上是关于如何简化任意布尔表达式?的主要内容,如果未能解决你的问题,请参考以下文章

布尔代数表达式简化

简化布尔表达式的算法

表达式可以在布尔文字上简化[重复]

使用卡诺图简化布尔表达式

布尔乘积和简化

布尔逻辑 - 简化产品的总和