提问人:Corbett Knoff 提问时间:12/22/2020 最后编辑:ShadowRangerCorbett Knoff 更新时间:12/22/2020 访问量:1732
为什么(a 和 b)不等同于不是 a 和 b?[已结束]
Why isn't not (a and b) the same as not a and not b? [closed]
问:
为什么不一样?Not(a and b)
Not a and Not b
while i < len(array) - 1:
if not array[i - 1] < array[i] and not array[i] > array[i + 1]:
i += 1
continue
while i < len(array) - 1:
isPeak = array[i - 1] < array[i] and array[i] > array[i + 1]
if not isPeak:
i += 1
continue
我包含了提出这个问题的代码,但为什么与?Not(a and b)
Not a and Not b
答:
2赞
ShadowRanger
12/22/2020
#1
因为它们在逻辑上不等价。你可以用一个真值表自己计算出来:
一个 | B | 不是 A | 不是 B | 不是 A 也不是 B |
---|---|---|---|---|
F | F | T | T | T |
F | T | T | F | F |
T | F | F | T | F |
T | T | F | F | F |
一个 | B | A 和 B | 不是(A 和 B) |
---|---|---|---|
F | F | F | T |
F | T | F | T |
T | F | F | T |
T | T | T | F |
如果你看一下德摩根定律,就会发现一个简单的转换;当你把 分布到括号里时,你从 翻转到 (反之亦然),所以等价于 ;如果你为此制作一个真值表,你会发现它们完全匹配。同样,拉出 from 产生 ,然后再次匹配真值表。not
and
or
not (A and B)
not A or not B
not
not A and not B
not (A or B)
评论
1赞
ShadowRanger
12/23/2020
@VLAZ:感谢您改进的格式,没有意识到他们已经将表格引入了 Markdown。
评论
not (a and b)
not a and not b
not (a and b) == not a or not b
和。not a and not b == not (a or b)