真值表列出一个命题所有可能的真值组合,并告诉你在每种情况下最终结果是真还是假。如果你想快速理解 AND、OR、NOT、XOR 或蕴含,真值表通常是最清晰的起点。
本页中的主要逻辑运算符遵循一组简明而精确的规则:
- 只有在两者都为真时才为真。
- 只要至少有一个为真就为真。
- 会把 的真值取反。
- 在两者中恰好一个为真时为真。
- 只在 为真且 为假时为假。
AND、OR、NOT、XOR 与蕴含的真值表
对于两个命题 和 ,共有四种可能的输入行:、、 和 。一个完整的真值表必须包含这四种情况。
| T | T | T | T | F | T | F |
| T | F | F | T | T | F | F |
| F | T | F | T | T | T | T |
| F | F | F | F | F | T | T |
如果你只记住一个真值表,那就记这个。大多数逻辑入门题,最终都可以归结为正确读取其中某一列。
每个逻辑符号的含义
AND 表示两者都成立
只有在两个输入都为真时才为真。
这就是为什么 AND 那一列只有一行为真。
OR 表示至少一个成立
在一个输入为真时为真,在两个都为真时也为真。
这就是 OR 的包含式含义。如果题目要求“二者之一,但不能同时成立”,那就应该使用 XOR。
NOT 会反转一个命题
会把真变成假,把假变成真。
NOT 与这里其他运算符不同,因为它只作用于一个命题,而不是两个命题。
XOR 表示恰好一个成立
在两个输入不同时为真。
因此中间两行为真,而 与 相同的两行为假。
蕴含只有一种情况为假
只在 为真而 为假时为假。
这个规则一开始可能会让人觉得奇怪,因为逻辑中的蕴含并不等同于日常语言中的“导致”。它表示“如果 ,那么 ”这个断言,只有在 发生而 没发生时才算失败。
例题:为什么 只会有一次为假
设 表示“这个数能被 4 整除”, 表示“这个数是偶数”。
考虑命题
它的意思是:如果一个数能被 整除,那么它是偶数。
现在来看四种逻辑情况:
- 如果 为真且 为真,这个命题成立。
- 如果 为真且 为假,这个命题不成立。
- 如果 为假,那么在命题逻辑中这个蕴含算真,因为这个命题并没有对条件未发生的情况作出承诺。
这就是为什么 恰好只有一行为假。在这个例子里,这个断言对所有实数都成立,因为每个 4 的倍数都是偶数。
真值表中的常见错误
- 混淆 OR 和 XOR。普通 OR 包含两个输入都为真的情况。
- 把蕴含理解成日常意义上的因果关系。在真值表中, 是由各行定义的,而不是由某个因果故事决定的。
- 忘记列出所有输入组合。对于两个命题,必须有四行。
- 把 NOT 当成双输入运算符。它只作用于一个命题。
- 以为真值表只用于哲学或证明。同样的逻辑也出现在布尔代数和数字系统中。
真值表的用途
真值表可用于定义逻辑联结词、检验两个命题是否等价、检查一个论证形式是否有效,以及在计算中读取布尔表达式。
当符号规则显得过于抽象时,真值表尤其有用。表格会把每一种情况都摆出来,因此更容易发现隐藏的错误。
试着做一个类似的真值表
为下面这个式子构造真值表:
然后把它的最后一列与 的那一列进行比较。如果你还想继续探索另一个例子,可以对 做同样的过程,看看它与普通 OR 有什么不同。