为什么会 !&& 等于 ||?



我最近遇到了一个问题,我们要找到一个等效的布尔表达式(x && !y)给定一组选择。在浏览一些例子时,我的教授指出!(!x && y)不是正确答案,因为 !分发使这个表达式等价于(x || !y),所以 !更改 && 到 ||。相反,正确答案是!(!x || y)

我试图玩弄 && 和 || 的真值表,我不明白为什么这是真的。否定 &&true 表中的结果不会给出等于 || 的结果。否定 &&&会产生的输出

0 && 0 --> 0 !-> 1
0 && 1 --> 0 !-> 1
1 && 0 --> 0 !-> 1
1 && 1 --> 1 !-> 0

我可以看到上面的答案是如何正确的,我只是不明白为什么。我在这里错过了什么?

德摩根定律 https://en.wikipedia.org/wiki/De_Morgan%27s_laws 是相关的。

他们说:

I)   !(a && b) = (!a) || (!b)
II)  !(a || b) = (!a) && (!b)

其中否定和手段同时否定或手段两个否定。

让我们在II中将 a 替换为 (!x(,将 b 替换为 y:

II)  !((!x) || y) = (!(!x)) && (!y)

这给了

II)  !(!x || y) = x && (!y)

表明我需要正确的等价物是!(!x || y).

相关内容

  • 没有找到相关文章

最新更新