任何人都知道减少布尔表达式

时间:2016-01-12 15:21:31

标签: boolean logic boolean-expression

任何人都可以帮我减少4个文字吗?

F =(A + C + D)(A + C + D')(A + C' + D)(A + B')

我在星期五的逻辑中测试了答案是F = C D B' + A.

2 个答案:

答案 0 :(得分:2)

假设⋅运算符代表二元连接,+二元分离和'或一元否定,我将以这种方式应用Boolean algebra的定律:

(a + c + d)⋅(a + c + ¬d)⋅(a + ¬c + d)⋅(a + ¬b)
((a + d) + (c⋅¬c))⋅(a + c + ¬d)⋅(a + ¬b)        //distributivity
((a + d) + (0))⋅(a + c + ¬d)⋅(a + ¬b)       //complementation: c⋅¬c = 0
(a + d)⋅(a + c + ¬d)⋅(a + ¬b)           //identity for +: (a + d) + (0) = (a + d)
(a) + (d⋅(c + ¬d)⋅¬b)                 //distributivity
(a) + ((d⋅c + d⋅¬d))⋅¬b)              //distributivity: d⋅(c + ¬d) = (d⋅c + d⋅¬d)
(a) + ((d⋅c + 0))⋅¬b)                 //complementation: d⋅¬d = 0
(a) + (d⋅c⋅¬b)                        //identity for +: (d⋅c + 0) = d⋅c

a + ¬b⋅c⋅d

最后一行是最小的DNF。您也可以通过这种方式将其转换为最小的CNF:

(a) + (¬b⋅c⋅d)
(a + ¬b)⋅(a + c)⋅(a + d)              //distributivity

对于这些少量变量,您可以使用卡诺图来快速找到最小形式或控制结果。在下面的图片中(使用latex生成)是它的最小DNF和最小CNF旁边的原始表达式。

Three K-maps of three equivalent boolean expressions.

答案 1 :(得分:1)

找到平均术语后即可使用 Quine McCluskey Technique来解决这个问题。结果与K-Map相同。但对于许多可靠的布尔表达式来说,它是快速的技术。

  

Quine McCluskey online solver

相关问题