プログラミングや論理回路の問題で、「X と Y の間にどんな演算が入るか?」という問題に出会ったことはありませんか?
複雑な真理値表を前にして混乱してしまったとき、視点を変えるだけで驚くほど簡単に解けるようになります。
今回の課題
基本情報技術者試験では、次のような表から問題が出されることがあります。
・XとYは、0か1が入る変数である
・(X□Y)は、XとYの論理演算である
その上で、(X□Y)の正しい真理値表はどれか?(4択)という問題。
| X | Y | X AND (X□Y) | X OR (X□Y) |
| 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 |
🚀 ステップ1:ノイズを削る「Y列の無視」
まず、多くの人が陥る罠が「Y の値を見て考えようとしてしまうこと」です。
この問題の核は、(X □ Y) という塊がどう動くかを見ることにあります。そしてそれはXとの論理演算でのみ判断します。
そのため、「Y列は無視していい」と考えました。
| X | Y | X AND (X□Y) | X OR (X□Y) |
| 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 |
🚀 ステップ2:塊を「Z」と置いて逆算する
(X □ Y) を Z と置き換えて、結果から Z の正体を絞り込みます。
| X | Y | X AND | X OR |
| 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 |
| 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 |
① X=0 のとき(表の1〜2行目)
- ANDの結果が 0: 0 AND Z = 0 → ということは、 Z は 「0」 でも 「1」 でも OK
| X | X AND Z |
| 0 | 0 |
| 0 | 0 |
- ORの結果が 1: 0 OR Z = 1 → Z は 「1」である必要がある
| X | X OR Z |
| 0 | 1 |
| 0 | 1 |
- 結論: X=0 のとき(表の1〜2行目)の Z は 1 で確定!
② X=1 のとき(表の3行目)
| X | X AND Z | X OR Z |
| 1 | 0 | 1 |
- ANDの結果が 0: 1 AND Z = 0 → Z は 「0」である必要がある
| X | X AND Z |
| 1 | 0 |
- ORの結果が 1: 1 OR Z = 1 → Z は 「0」 でも 「1」 でも OK
| X | X OR Z |
| 1 | 1 |
- 結論: X=1 のとき(表の3行目)の Z は 0 で確定!
③ X=1 のとき(表の4行目)
| X | X AND Z | X OR Z |
| 1 | 1 | 1 |
- ANDの結果が 1: 1 AND Z = 1 → Z は 「1」である必要がある
| X | X AND Z |
| 1 | 1 |
- ORの結果が 1: 1 OR Z = 1 → Z は 「0」 でも 「1」 でも OK
| X | X OR Z |
| 1 | 1 |
- 結論: X=1 のとき(表の4行目)の Z は 1 で確定!
🚀 ステップ3:導き出した「Z」の姿
分析の結果、求めたい演算 Z(つまり X □ Y)の真理値はこうなります。
| X | Y | Z(つまり X □ Y) |
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
あとは、選択肢の中からこの「1, 1, 0, 1」の並びになる演算を探すだけです!
💡 まとめ:混乱しないための3箇条
- Y列に惑わされない: 複雑な表記 (X □ Y) に目を奪われないこと。
- Z として置き換える: 塊として捉えれば、単純な AND/OR の逆算になります。
- 条件に合致する選択肢を選ぶ: 導き出した Z の列が、そのまま「正解」になります。
このような論理パズルは、試験だけでなく実際のデバッグ作業などでも役立つ思考法です。ぜひ活用してみてください!


コメント