2016-09-16 144 views
-1

我有一个函数f(a,b,c,d) = b*(a+~c) + d*(a+~b),其中*(AND),+(OR),~(NOT)简化布尔表达式

使用分配律,我得到:ba + b~c + da + d~b

但得到的答复是ab + b~c + d~b

我想不通,如何摆脱da

我试过因子分解得到:a(b+d) + b~c + d~b,但那并没有让我到任何地方。

+2

我投票结束这个问题作为题外话,因为它不是一个编程问题。它可能更适合于不同的[se]站点,例如[math.se]。 –

+1

我投票结束这个问题作为题外话,因为它是关于布尔逻辑而不是编程或编码。 – Pang

+1

我投票结束这个问题作为题外话,因为它是关于布尔逻辑,而不是编程。 –

回答

1

您可以为每个参数创建一个包含所有可能值的表格:[1,0]并计算这两个表达式。如果你能证明在每一种情况下他们评估的结果都是相同的,你会发现它们是相同的,因此可以丢弃ad

我将演示,让你完成练习:

enter image description here

1

所以,问题是为什么ba + b~c + da + d~b = ab + b~c + d~b

原因很简单,da什么也没给左侧添加

如果会,会有这样的情况:da = trueab + b~c + d~b = false。但是,如果da = true,则d = truea = true。如果btrue,然后ab = true和我们没有什么右侧增加。如果b = false,那么d~b = true并且我们还没有添加任何东西。

可以使用表格或转换规则,例如分布等。但是,最好试着理解为什么两个表达式是等价的。