メインコンテンツへ
基礎理論

X 及び Y はそれぞれ 0 又は 1 の値をとる変数である。X□Y を X と Y の論理演算としたとき、次の真理値表が得られた。X□Yの真理値表はどれか。

XYX AND (X□Y)X OR (X□Y)
0001
0101
1001
1111
ア.X□Y: (0,0)→1, (0,1)→1, (1,0)→0, (1,1)→0
イ.X□Y: (0,0)→0, (0,1)→0, (1,0)→0, (1,1)→1
ウ.X□Y: (0,0)→1, (0,1)→1, (1,0)→0, (1,1)→1正解
エ.X□Y: (0,0)→1, (0,1)→1, (1,0)→1, (1,1)→0

解説

AND列はX=0のとき常に0(手がかりゼロ)、OR列はX=0のときX□Yそのものになる——「片方の扉しか開かない密室」を使いこなすことで演算を特定できます。

なぜ ウ が正解か

X=0の行ではAND列は必ず0なので情報ゼロ、無視してOK。代わりにOR列を見ると全行1なので『X=0のときX□Yは常に1』と確定します。X=1の行ではAND = X□Yそのものになるので、(1,0)→0、(1,1)→1と直読みできます。まとめると『X=0なら1、X=1ならYと同値』=¬X OR Y(論理含意)の真理値表がウ——「Xが0(雨が降らない)なら何があっても約束を守ったことになる」あの含意演算です。

なぜ ア は間違いか

NOT X(¬X)はX=0のとき1を返せますが、X=1,Y=1では0になります。AND列の(1,1)行が1を要求している以上、ここで力尽きる「最終面接で落ちた候補者」です。

なぜ イ は間違いか

AND演算はX=0のとき必ず0。するとX OR (X□Y) = 0 OR 0 = 0になり、OR列の『全行1』と正面衝突します。ANDは慎重すぎて、OR側がどれだけ0を拾おうとしても0を押しつけてくる面倒な演算——今回は真っ先に退場です。

なぜ エ は間違いか

NANDはX=1,Y=0で1を返しますが、必要な値は0です。さらにX=1,Y=1でも0になるため、AND列の(1,1)=1とも矛盾して二重失格。NANDは「ANDの天邪鬼バージョン」ですが、今回はその天邪鬼ぶりが全部裏目に出ています。

出典: 基本情報技術者試験 令和6年 公開問題