マナビング基本情報技術者

真理値表の逆算:ANDとORの結果から未知の演算を特定する

基本情報技術者試験 令和6年度 問1 / 基礎理論 › 離散数学

過去問にチャレンジ

令和6年度 問1

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

令和6年度 問1の図
  1. ア
    令和6年度 問1の図(選択肢ア)
  2. イ
    令和6年度 問1の図(選択肢イ)
  3. ウ
    令和6年度 問1の図(選択肢ウ)
  4. エ
    令和6年度 問1の図(選択肢エ)

会話形式の解説

講師講師
この問題では、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‾∨Y\overline{X} \lor 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となり、これと一致するのはウだけです。

選択肢ごとの解説

  1. ×ア
    アは0,0,0,1という並びで、論理積(X AND Y)の真理値表です。X=0の2行でX□Yが0なので、X OR (X□Y)は0になります。表のOR列は1なので合いません。
  2. ×イ
    イは0,1,0,1という並びで、Yの値をそのまま出力する表です。(0,0)の行でX□Yが0なので、X OR (X□Y)も0になり、表のOR列の1と食い違います。
  3. ○ウ
    ウは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(X‾∨Y\overline{X} \lor Y)にあたります。
  4. ×エ
    エは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を決める手がかりにはなりません。

※出典:令和6年度 基本情報技術者試験 科目A 問1(一部改変)