我有一个函数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
,但那并没有让我到任何地方。
我有一个函数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
,但那并没有让我到任何地方。
所以,问题是为什么ba + b~c + da + d~b = ab + b~c + d~b
。
原因很简单,da
什么也没给左侧添加。
如果会,会有这样的情况:da = true
和ab + b~c + d~b = false
。但是,如果da = true
,则d = true
和a = true
。如果b
也true
,然后ab = true
和我们没有什么右侧增加。如果b = false
,那么d~b = true
并且我们还没有添加任何东西。
可以使用表格或转换规则,例如分布等。但是,最好试着理解为什么两个表达式是等价的。
我投票结束这个问题作为题外话,因为它不是一个编程问题。它可能更适合于不同的[se]站点,例如[math.se]。 –
我投票结束这个问题作为题外话,因为它是关于布尔逻辑而不是编程或编码。 – Pang
我投票结束这个问题作为题外话,因为它是关于布尔逻辑,而不是编程。 –