哪些法律简化了这个布尔表达式?

时间:2015-03-01 18:27:23

标签: boolean-expression simplification boolean-algebra

我需要使用哪些法律来简化

!X + (!Y + !Z)*(Y + Z)

!X + (Y*!Z) + (!Y*Z)

3 个答案:

答案 0 :(得分:2)

无需应用任何特定的法律,只需写下简单的表格即可确定两个表达式是否相同(提供+OR和{{1} }是*):

AND

同样,您可以扣除Y Z !Y !Z (!Y+!Z)*(Y+Z) (Y*!Z) +(!Y*Z) 0 0 1 1 (1+1=1)*(0+0=0)=0 (0*1=0)+(1*0=0)=0 0 1 1 0 (1+0=1)*(0+1=1)=1 (0*0=0)+(1*1=1)=1 1 0 0 1 (0+1=1)*(1+0=1)=1 (1*1=1)+(0*0=0)=1 1 1 0 0 (0+0=0)*(1+1=1)=0 (1*0=0)+(0*1=0)=0 等同于(X or Y) and Z。这被称为(X and Z) or (Y and Z)and的分配。进一步阅读是一篇关于维基百科上Boolean algebra的好文章。

在您的示例中:or。简单(!Y + !Z)*(Y + Z) = !Y*(Y + Z) + !Z*(Y + Z) = !Y*Y + !Y*Z + !Z*Y + !Z*Z,因为交换性,您的表达式会简化为A and not A == false并进一步简化为!Y*Z + !Z*Y

答案 1 :(得分:1)

你可以先从乘法的分配性开始加法:

!X + (!Y + !Z)*(Y + Z) = !X + !Y*Y + !Z*Y + !Y*Z + !Z*Z

然后,我们可以使用互补来删除!p*p形式的元素:

= !X + 0 + !Z*Y + !Y*Z + 0

最后删除0,因为它们+是中立的。

答案 2 :(得分:0)

如果内存有效(并且我的记法正确),那么这是一个简单连词中的SLD分辨率:http://en.wikipedia.org/wiki/SLD_resolution