简化给定的布尔表达式

时间:2019-02-17 20:15:37

标签: boolean logic boolean-logic boolean-expression digital

我一直在尝试简化此布尔表达式

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

(第一个否定词覆盖了整个表达式)

我得到BC'+ A'D'B + AB'+ AC'D'+ DB',但答案中没有AC'D'一词。有什么办法可以使用吸收定律或其他方法删除该术语?

谢谢

2 个答案:

答案 0 :(得分:0)

两个表达式都是等效的。

表达式1:B&!C + A&!B + !A&B&!D + !B&D

表达式2:B&!C + A&!B + !A&B&!D + !B&D + A&!C&!D

A&!C&!D当且仅当A = 1,C = 0和D = 0时为真

如果在表达式1中注入这些条件,我们就有

对于所有B&1 + 1&!B + 0&B&1 + !B&0 = B+!B =1

B

因此,当A&!C&!D=1其余表达式也被断言并且A&!C&!D时, 是多余的,可以被抑制。

它也可以用代数方法证明,但更长。

我们使用共识定理指出x&y+!x&z=x&y+!x&z+y&z

在定理1上应用定理

B&!C + A&!B == B&!C + A&!B + A&!C
            == B&!C + A&!B + A&!C&D + A&!C&!D
B&!C + !B&D == B&!C + !B&D + !C&D

如果我们在表达式1中插入这些多余的多余术语(在括号之间以提高可读性)

(B&!C + A&!B + !A&B&!D + !B&D) + A&!C&D + A&!C&!D + !C&D
   = (B&!C + A&!B + !A&B&!D + !B&D) + A&!C&!D + (A&!C&D + !C&D)
   = (B&!C + A&!B + !A&B&!D + !B&D) + A&!C&!D + !C&D

但是作为B&!C + !B&D + !C&D = B&!C + !B&D,要感谢共识定理

我们可以抑制!C&D并发现

B&!C + A&!B + !A&B&!D + !B&D = B&!C + A&!B + !A&B&!D + !B&D + A&!C&!D

已确认

答案 1 :(得分:0)

对于此类问题,Karnaugh maps非常有用:

enter image description here

通过目视检查,很明显AB'C'已完全覆盖AB'

University of Marburg(ThorstenThormählen教授)提供了一个不错的在线地图生成器。