排他的論理和を表す論理式はどれか。ここで,論理変数AとBに対する排他的論理和の真理値表は次のように表される。また,ANDは論理積,ORは論理和,NOTは否定を表す。
| A | B | 排他的論理和 |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
这道题的解析和你的作答记录。
排他的論理和を表す論理式はどれか。ここで,論理変数AとBに対する排他的論理和の真理値表は次のように表される。また,ANDは論理積,ORは論理和,NOTは否定を表す。
| A | B | 排他的論理和 |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
(A OR B) AND (A OR (NOT B)) 用分配律提取公因子后变成 A OR (B AND (NOT B))。B AND (NOT B) 恒为 0,所以这个表达式最终与 A 相同,也就是完全不参照 B 的值的表达式。用真值表验证:A=0、B=0 时为 0(表中也是 0,一致);A=0、B=1 时为 0(表中是 1,不一致);A=1、B=0 时为 1;A=1、B=1 时为 1(表中是 0,不一致),4 行中有 2 行与表不符。异或是对等地处理 A 与 B 的运算,因此其中一个变量被消掉的表达式不可能成为候选。
正解 正确答案是イ“(A OR B) AND ((NOT A) OR (NOT B))”。真值表所示的异或(XOR)是当 A 与 B 不同时、也就是“恰好只有一方为 1”时才为 1 的运算。这个条件可以分解为两个条件同时成立。第一个是“至少有一方为 1”,即 A OR B。第二个是“并非两者都为 1”,即 NOT(A AND B),根据德摩根定律可以写成 (NOT A) OR (NOT B)。把这两者用逻辑与连接起来得到的 (A OR B) AND ((NOT A) OR (NOT B)),表示“至少有一方为 1,并且并非两者都为 1”=恰好只有一方为 1,也就是异或。实际把真值表的 4 行全部代入验证:A=0、B=0 时 (0 OR 0)=0,所以整体为 0;A=0、B=1 时 (0 OR 1)=1 且 ((NOT 0) OR (NOT 1))=(1 OR 0)=1,所以整体为 1;A=1、B=0 时 (1 OR 0)=1 且 ((NOT 1) OR (NOT 0))=(0 OR 1)=1,所以整体为 1;A=1、B=1 时 (1 OR 1)=1,但 ((NOT 1) OR (NOT 1))=(0 OR 0)=0,所以整体为 0。结果为 0、1、1、0,与表中异或那一列完全一致。
((NOT A) OR B) AND (A OR (NOT B)) 的前半部分表示“如果 A 为 1,那么 B 也为 1”,后半部分表示“如果 B 为 1,那么 A 也为 1”,所以整体是当 A 与 B 相等时为 1 的表达式,也就是一致(异或的否定,XNOR)。代入验证:A=0、B=0 时是 1 AND 1 = 1(表中是 0);A=0、B=1 时是 1 AND 0 = 0(表中是 1);A=1、B=0 时是 0 AND 1 = 0(表中是 1);A=1、B=1 时是 1 AND 1 = 1(表中是 0),4 行全部与表中的值正好相反。它的含义与正确答案恰好相反,是最容易混淆的错误选项。
((NOT A) OR B) AND ((NOT A) OR (NOT B)) 用分配律提取公因子后变成 (NOT A) OR (B AND (NOT B)),由于 B AND (NOT B) 恒为 0,最终与 NOT A 是同一个表达式。与ア一样,B 不影响结果。代入验证:A=0、B=0 时为 1(表中是 0,不一致);A=0、B=1 时为 1(表中也是 1,一致);A=1、B=0 时为 0(表中是 1,不一致);A=1、B=1 时为 0(表中也是 0,一致),4 行中有 2 行与表不符。