简化一组AND和OR子句

Sea*_*her 1 logic conditional

所以如果我有一组AND和OR子句如下:

Y = ( A + B ) . ( A + C' ) . ( B + D' )
Run Code Online (Sandbox Code Playgroud)

我可以像这样简化它:

Y = A . ( B + C' ) . ( B + D' ) ; Because A is common to ( A + B ) and ( A + C' )
Y = A . B . ( C' + D' )         ; Because B is common to ( B + C' ) and ( B + D' )
Run Code Online (Sandbox Code Playgroud)

谢谢你的时间.

Ton*_*age 5

不,如果您使用以下值:

A = 1
B = 0
C = 0
D = 0
Run Code Online (Sandbox Code Playgroud)

如果您的简化版本为false,则原始语句为true.您可以通过扩展布尔表达式然后尝试代数减少它来找到另一种表示方式,如下所示:

(A + B)(A + C')(B + D')
(AA + AC' + AB + BC')(B + D')                          // expand first 2 groups
AAB + ABC' + ABB + BBC' + AAD' + AC'D' + ABD' + BC'D'  // expand all groups
AB + ABC' + AB + BC' + AD' + AC'D' + ABD' + BC'D'      // apply identity to reduce
AB + BC' + AD'                                         // eliminate redundant expressions
Run Code Online (Sandbox Code Playgroud)

最终结果在你的符号中看起来像这样

(A . B) + (B . C') + (A . D')
Run Code Online (Sandbox Code Playgroud)

更进一步可以带来它

B . (A + C') + (A . D')
Run Code Online (Sandbox Code Playgroud)

要么

A . (B + D') + (B . C')
Run Code Online (Sandbox Code Playgroud)