基本情報技術者

問1

基本情報技術者試験過去問 令和6年度(2024年)科目A問1

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

選択肢

正解と解き方・学習ポイント(AI解説)

正解:
あなたの回答:未回答

問題の真理値表では、X OR (X□Y) が全ての行で1です。ORはどちらかが1なら1なので、X=0の行ではX□Yが1である必要があります。次に、X AND (X□Y) は (X,Y)=(1,1) のときだけ1です。ANDは両方が1のときだけ1なので、X=1の行では 1 AND (X□Y) = X□Y となり、AND列の値がそのままX□Yになります。これによりX□Yの結果は上から順に1, 1, 0, 1となり、この真理値表に一致するのは「ウ」です。

不正解

「解答ア」はX,Yの値が(0,0)と(0,1)の場合X□Yが0です。X=0のとき 0 OR (X□Y) = X□Y となるため、「解答ア」が正解の場合は、問題の真理値表のX,Yが(0,0)と(0,1)のときX OR (X□Y) が1ではなく0にならなければならず、一致しないため誤りです。

不正解

「解答イ」はX,Yの値が(0,0)の場合X□Yが0です。X=0のとき 0 OR (X□Y) = X□Y となるため、「解答イ」が正解の場合は、問題の真理値表でX,Yの値が(0,0)のときX OR (X□Y) が1ではなく0にならなければならず、一致しないため誤りです。

正解

X=0のとき、 0 OR (X□Y) = X□Y となるため、X,Yの値が(0,0)と(0,1)のときX□Yは1です。X=1のとき 1 AND (X□Y) = X□Y となるため、X,Y の値が(1,0)のときX□Yは0、(1,1)は1です。よって正解です。

不正解

「解答エ」はX,Yの値が(1,0)の場合X□Yが1です。X=1のとき 1 AND  (X□Y) = X□Y となるため、「解答エ」が正解の場合は問題の真理値表のX,Yが(1,0)の場合、X AND (X□Y) が0ではなく1にならなければならず、一致しないため誤りです。

Point

この問題は、複合した論理式の真理値表から、未知の論理演算X□Yの出力を各入力条件ごとに確定し、候補の真理値表と照合して特定する力を確認することをねらいとしています。

解くために必要な知識

この問題を解くには、ANDとORの真理値表、及び入力を固定したときの式の簡単化を理解している必要があります。

用語の整理

用語名 意味
真理値表 入力(0/1)の全組合せに対する論理式の出力(0/1)をまとめた表です。
論理演算 0/1を扱う演算です。例としてAND、OR、NOTがあります。
AND(論理積) 両方が1のときだけ1です。片方が0なら必ず0です。
OR(論理和) どちらかが1なら1です。両方が0のときだけ0です。

AND と OR の基本性質

AND の性質

X A X AND A
0 0 0
0 1 0
1 0 0
1 1 1

ここから次が成り立ちます。

  • 0 AND A = 0

  • 1 AND A = A

OR の性質

X A X OR A
0 0 0
0 1 1
1 0 1
1 1 1

ここから次が成り立ちます。

  • 0 OR A = A

  • 1 OR A = 1

真理値表の読み取り方

行ごとに入力を固定して考える

  • X=0の行、X=1の行のように入力を固定すると、ORやANDの結果から未知の項(A = X□Y)を確定しやすくなります。

常に1、常に0の列を利用する

  • ORが常に1であれば、0 OR A = A を使って、X=0の行のAが1と分かります。

  • ANDはX=1の行で 1 AND A = A となるため、その列をそのままAとして読み取れます。

問題の解法手順

図表の読み取り

与えられている列

表には次の2つが示されています。

  • X AND (X□Y)

  • X OR (X□Y)

ORから分かること(X=0の行)

ORの性質より、0 OR A = A です。
そのためX=0の行では、X OR (X□Y) = X□Y になります。

  • X=0, Y=0 の行:X OR (X□Y) = 1 なので、X□Y = 1

  • X=0, Y=1 の行:X OR (X□Y) = 1 なので、X□Y = 1

ANDから分かること(X=1の行)

ANDの性質より、1 AND A = A です。
そのためX=1の行では、X AND (X□Y) = X□Y になります。

  • X=1, Y=0 の行:X AND (X□Y) = 0 なので、X□Y = 0

  • X=1, Y=1 の行:X AND (X□Y) = 1 なので、X□Y = 1

この結果を選択肢の真理値表と照合すると「ウ」が一致します。

選択肢ごとの解説

不正解

「解答ア」はX,Yの値が(0,0)と(0,1)の場合X□Yが0です。X=0のとき 0 OR (X□Y) = X□Y となるため、「解答ア」が正解の場合は、問題の真理値表のX,Yが(0,0)と(0,1)のときX OR (X□Y) が1ではなく0にならなければならず、一致しないため誤りです。

不正解

「解答イ」はX,Yの値が(0,0)の場合X□Yが0です。X=0のとき 0 OR (X□Y) = X□Y となるため、「解答イ」が正解の場合は、問題の真理値表でX,Yの値が(0,0)のときX OR (X□Y) が1ではなく0にならなければならず、一致しないため誤りです。

正解

X=0のとき、 0 OR (X□Y) = X□Y となるため、X,Yの値が(0,0)と(0,1)のときX□Yは1です。X=1のとき 1 AND (X□Y) = X□Y となるため、X,Y の値が(1,0)のときX□Yは0、(1,1)は1です。よって正解です。

不正解

「解答エ」はX,Yの値が(1,0)の場合X□Yが1です。X=1のとき 1 AND  (X□Y) = X□Y となるため、「解答エ」が正解の場合は問題の真理値表のX,Yが(1,0)の場合、X AND (X□Y) が0ではなく1にならなければならず、一致しないため誤りです。

まとめ

問題の真理値表では、X OR (X□Y) が全ての行で1です。ORはどちらかが1なら1なので、X=0の行ではX□Yが1である必要があります。次に、X AND (X□Y) は (X,Y)=(1,1) のときだけ1です。ANDは両方が1のときだけ1なので、X=1の行では 1 AND (X□Y) = X□Y となり、AND列の値がそのままX□Yになります。これによりX□Yの結果は上から順に1, 1, 0, 1となり、この真理値表に一致するのは「ウ」です。

順次、単語を追加予定です。もうしばらくお待ちください。