真理値表の逆算:ANDとORの結果から未知の演算を特定する
基本情報技術者試験 令和6年度 問1 / 基礎理論 › 離散数学
過去問にチャレンジ
X及びYはそれぞれ0又は1の値をとる変数である。X□YをXとYの論理演算としたとき,次の真理値表が得られた。X□Yの真理値表はどれか。

- ア

- イ

- ウ

- エ

会話形式の解説
講師この問題では、X AND (X□Y)とX OR (X□Y)の結果から、中身の分からない演算X□Yを逆算します。注目してほしいのは、Xが0の行と1の行で、見るべき列が変わるという点です。
受験者私は選択肢を一つずつ表に当てはめて、4行全部を計算しようとしていました。時間がかかってしまいます。
講師確かめ算としては正しいやり方です。ただ、先に答えを絞り込めると速くなります。まず、Aを何かの値として、1 AND Aと0 OR Aはそれぞれどうなりますか。
受験者1 AND AはAが1なら1、0なら0なので、A自身です。0 OR Aも同じくA自身になります。
講師そのとおりです。ですから、Xが0の行ではOR列の値がそのままX□Yの値になります。表のOR列はXが0の2行ともに1なので、(0,0)と(0,1)のX□Yは両方とも1です。
受験者Xが1の行ではAND列を見ればよいのですね。(1,0)はAND列が0なのでX□Yは0、(1,1)は1なのでX□Yも1です。並べると1,1,0,1になります。
講師はい。この並びと一致するのは1,1,0,1の表だけです。逆に、Xが0の行のAND列は必ず0に、Xが1の行のOR列は必ず1になるので、そこはX□Yを決める手がかりになりません。
受験者0,0,0,1の表は論理積、つまりANDの表に見えます。これはどこで合わなくなりますか。
講師Xが0の2行でX□Yが0なので、X OR (X□Y)が0になってしまいます。表のOR列は1なので合いません。0,1,0,1の表はYをそのまま出す演算ですが、(0,0)の行で同じようにOR列が0になり、食い違います。
受験者1,1,1,0の表は、Xが0の行は1なのでOR列とは合います。ここが紛らわしいと思いました。
講師よく気づきました。これは否定論理積、NANDの表です。Xが1の行で崩れます。(1,1)ではX□Yが0なのでAND列が0になり、表の1と合いません。(1,0)ではX□Yが1なのでAND列が1になり、表の0と食い違います。
受験者Xが0ならOR列、Xが1ならAND列を見て、1,1,0,1の表を選ぶということですね。最後に代入して確かめれば安心です。
講師そうです。代入すると、AND列は0,0,0,1、OR列は全部1となり、与えられた表と全行で一致します。ちなみにこの演算は含意X→Y()で、「Xが1でYが0」のときだけ0になると覚えると見分けやすいです。AND、OR、NANDなど代表的な演算の真理値表も覚えておくと、選択肢を見ただけで見当がつきます。
まとめ
X AND (X□Y)とX OR (X□Y)の真理値表から、未知の演算X□Yを逆算する問題です。1 AND Aと0 OR AはどちらもA自身になるので、Xが0の行はOR列の値、Xが1の行はAND列の値がそのままX□Yになります。こうして求めた並び1,1,0,1と一致する表が正解で、この演算は含意X→Yにあたります。AND、Yをそのまま出す演算、NANDの表は、それぞれどこかの行でAND列かOR列と食い違います。
解答・解説
正解はウです
この問題のテーマ
XとX□YのANDとORの結果を示した真理値表から、未知の論理演算X□Yの真理値表を逆算して求める問題です。
解き方の考え方
ポイントは、Xの値が決まるとANDとORの性質から式を簡単にできることです。X=0のときは0 OR A=Aなので、OR列の値がそのままX□Yになります。表のOR列は1なので、(0,0)と(0,1)のX□Yはどちらも1です。X=1のときは1 AND A=Aなので、AND列の値がそのままX□Yになり、(1,0)は0、(1,1)は1と決まります。並べると1,1,0,1となり、これと一致するのはウだけです。
選択肢ごとの解説
- ×アアは0,0,0,1という並びで、論理積(X AND Y)の真理値表です。X=0の2行でX□Yが0なので、X OR (X□Y)は0になります。表のOR列は1なので合いません。
- ×イイは0,1,0,1という並びで、Yの値をそのまま出力する表です。(0,0)の行でX□Yが0なので、X OR (X□Y)も0になり、表のOR列の1と食い違います。
- ○ウウは1,1,0,1という並びで、逆算した結果と一致します。4行それぞれでAND列とOR列を計算すると、(0,0)は0と1、(0,1)は0と1、(1,0)は0と1、(1,1)は1と1になり、与えられた表と全行で一致します。この演算は含意X→Y()にあたります。
- ×エエは1,1,1,0という並びで、否定論理積(NAND)の表です。(1,1)ではX□Yが0なので、X AND (X□Y)は0になり、表のAND列の1と合いません。(1,0)でもX AND (X□Y)が1になり、表のAND列の0と食い違います。
補足
逆算で答えを絞り込んだら、選んだ選択肢の値を元の式に代入して、4行すべてで表と一致するか確かめると安心です。ウの演算は含意X→Yで、XとYのうち「Xが1でYが0」の組合せのときだけ0になる、と覚えておくと見分けやすくなります。ANDやOR、NANDなど代表的な演算の真理値表を覚えておくと、選択肢を見ただけで何の演算か見当がつきます。
POINT
- 1 AND Aと0 OR Aは、どちらもA自身になります。
- X=0の行ではOR列を見ればX□Yの値がそのまま分かります。
- X=1の行ではAND列を見ればX□Yの値がそのまま分かります。
- X=0の行のAND列やX=1の行のOR列は常に同じ値になるので、X□Yを決める手がかりにはなりません。
