排他的論理和(XOR)は、2つの入力が異なる場合に真(1)、同じ場合に偽(0)となる論理演算です。この問題を解く最も確実で理解しやすい方法は、与えられた排他的論理和の真理値表と各選択肢の論理式を照らし合わせて、すべての入力パターンで結果が一致するものを探すことです。
排他的論理和(XOR)の真理値表と特性
まず、問題で示された排他的論理和の真理値表を再確認しましょう。
| A |
B |
排他的論理和 |
| 0 |
0 |
0 |
| 0 |
1 |
1 |
| 1 |
0 |
1 |
| 1 |
1 |
0 |
この表から、排他的論理和は「AとBのどちらか一方のみが真(1)である場合に結果が真(1)となり、AとBが両方とも偽(0)または両方とも真(1)の場合は結果が偽(0)になる」という特性を持つことがわかります。
この特性を別の言い方で表現すると、「AとBの値が異なるときに真、同じときに偽」となります。
論理式の検証手順
各選択肢の論理式に対して、真理値表のすべての入力パターン(A=0,B=0; A=0,B=1; A=1,B=0; A=1,B=1)を代入し、排他的論理和の真理値と一致するかを確認します。
選択肢ア: (A OR B) AND (A OR (NOT B))
- A=0,B=0: (0 OR 0) AND (0 OR (NOT 0))=(0) AND (0 OR 1)=0 AND 1=0
- A=0,B=1: (0 OR 1) AND (0 OR (NOT 1))=(1) AND (0 OR 0)=1 AND 0=0
- 排他的論理和: 1 → 不一致
この時点で、選択肢アは排他的論理和を表す式ではないことが確定しました。
選択肢イ: (A OR B) AND ((NOT A) OR (NOT B))
- A=0,B=0: (0 OR 0) AND ((NOT 0) OR (NOT 0))=(0) AND (1 OR 1)=0 AND 1=0
- A=0,B=1: (0 OR 1) AND ((NOT 0) OR (NOT 1))=(1) AND (1 OR 0)=1 AND 1=1
- A=1,B=0: (1 OR 0) AND ((NOT 1) OR (NOT 0))=(1) AND (0 OR 1)=1 AND 1=1
- A=1,B=1: (1 OR 1) AND ((NOT 1) OR (NOT 1))=(1) AND (0 OR 0)=1 AND 0=0
- 排他的論理和: 0 → 一致
すべての入力パターンで排他的論理和の真理値と一致しました。したがって、選択肢イが正しい答えです。
この式は「AまたはBが真である(A OR B)」かつ「AとBのどちらも真ではない(NOT (A AND B))」という条件を表しています。ここで、ド・モルガンの法則により NOT (A AND B) は (NOT A) OR (NOT B) と等しいため、選択肢イの式は排他的論理和の標準的な表現の一つです。
他の選択肢の確認(参考)
選択肢ウ: ((NOT A) OR B) AND (A OR (NOT B))
A=0,B=0: (1 OR 0) AND (0 OR 1)=1 AND 1=1
排他的論理和: 0 → 不一致
この式は排他的論理和の否定(XNOR)、つまりAとBが同じ場合に真となる論理式です。
選択肢エ: ((NOT A) OR B) AND ((NOT A) OR (NOT B))
A=0,B=0: (1 OR 0) AND (1 OR 1)=1 AND 1=1
排他的論理和: 0 → 不一致
この式は (NOT A) OR (B AND NOT B)=NOT A OR 0=NOT A と等価です。
論理演算の基本とIT分野での活用
論理演算の基礎知識
論理演算は、真(True)と偽(False)の2つの値(情報科学では1と0で表されることが多い)を扱う数学的な操作です。ITパスポート試験では、AND(論理積)、OR(論理和)、NOT(否定)の3つの基本演算子に加えて、排他的論理和(XOR)も頻出します。これらの演算子を組み合わせることで、複雑な条件判断や情報処理を記述できます。
論理式は、真理値表によってその意味が完全に定義されます。したがって、与えられた真理値表に合致する論理式を見つけるという今回の問題は、論理演算の理解度を測る基本的なスキルを問うものです。
IT分野での排他的論理和の活用
排他的論理和は、見た目以上に多様な場面で活用されます。
データの暗号化と復号: 排他的論理和は、同じ値を2回適用すると元に戻るという特性(A⊕K⊕K=A)を持ちます。この特性を利用して、データと暗号鍵をXOR演算することで暗号化し、同じ鍵で再度XOR演算することで復号する、という単純な暗号方式(例: ワンタイムパッド)の基礎となります。
エラー検出と訂正: データの送受信中に発生する誤りを検出するためによく利用されます。例えば、パリティビットと呼ばれるエラー検出用のビットを生成する際に、データのビット列のXORを取って付与することがあります。これにより、データが破損していないかを検証できます。
論理回路設計: コンピュータ内部の演算回路(例: 加算器)や制御回路を設計する際の基本的な要素として、XORゲートが使われます。半加算器の和の計算はXOR演算で行われます。
プログラミングにおけるビット操作: プログラミング言語では、XOR演算子(C言語やJavaなどでは ^ 記号)が用意されており、特定のビットを反転させたり、2つの変数の値を一時変数なしで交換したりするなどの効率的なビット操作に活用されます。
この問題は、論理演算の基礎を理解しているかだけでなく、真理値表から論理式の意味を読み解く能力、そしてその知識が様々なIT技術の基盤となっていることを知るための教育的な意図を持っています。
参考リンク