基本情報技術者 2024年 科目A 問01
問題文
X及びYはそれぞれ0又は1の値をとる変数である。X□YをXとYの論理演算としたとき、次の真理値表が得られた。X□Yの真理値表はどれか。


選択肢
ア:
イ:
ウ:(正解)
エ:
🔒 解説は解答すると表示されます
真理値表から演算同定【午前解説】
正解の理由
与えられた表は各入力 (X,Y) に対して「X AND (X□Y)」および「X OR (X□Y)」の値が示されています。これらの条件を満たす X□Y を行ごとに求めると、(0,0)=1、(0,1)=1、(1,0)=0、(1,1)=1 となります。この真理値列は選択肢のうち ウ の表と一致します。論理式としては
すなわち含意 と同値です。
解法ステップ
- 各行について X の値に注目する。X=0 のときは
- は常に成立する()。
- なので、表に示された値から直接 を求められる。
- 行 (X=0,Y=0):OR 列が 1 なので 。
- 行 (X=0,Y=1):同様に OR 列が 1 → 。
- 行 (X=1,Y=0):AND 列が 0 なので → 。OR 列は で矛盾なし。
- 行 (X=1,Y=1):AND 列が 1 → → 。
- 得られた真理値列 (00→1,01→1,10→0,11→1) を選択肢と照合すると ウ に一致する。
選択肢別の誤答解説
- ア: 真理値列は (00)=0,(01)=0,(10)=0,(11)=1 で、これは (論理積)と同値である。与えられた条件の (0,0) 行では OR 列が 1 を示すため、ア の (0,0)=0 は条件と矛盾する。
- イ: 真理値列は (00)=0,(01)=1,(10)=0,(11)=1 で、これは と同値である。与えられた (0,0) 行で だが OR 列が 1 を示すため不適合。
- ウ: 真理値列は (00)=1,(01)=1,(10)=0,(11)=1 で、与えられた各行の AND/OR の条件を満たす。論理式は (含意 )で説明できる。
- エ: 真理値列は (00)=1,(01)=1,(10)=1,(11)=0 で、これは (NAND)に相当する。与えられた (1,1) 行で AND 列が 1 を示しているため、エ は (1,1)=0 と矛盾する。
よくある誤解
- 「X=0 行では AND 列の値だけ見ればよい」と考えると誤る。X=0 のとき AND 列は常に 0 なので、実際に役立つのは OR 列(=自身)である点を見落としやすい。
- 選択肢を既知の演算(AND/OR/XOR 等)に当てはめるだけで決めようとする。正しくは与えられた複合式(X AND (X□Y), X OR (X□Y))から論理的に逆算することが必要。
補足コラム
導出した式を整理すると
は含意(if X then Y)を表す標準的な論理演算です。代数的に簡単化する手順は次の通り:
この問題は「複合式の値から未知演算の値を逆算する」典型問題で、X の値による分岐(X=0 と X=1)で考えると素早く解けます。
FAQ
Q1: X=0 の行ではなぜ AND 列は情報にならないのですか?
A1: は a に依らず常に 0 だからです。したがって X=0 の行では AND 列から を決定できず、代わりに OR 列 を使います。
A1: は a に依らず常に 0 だからです。したがって X=0 の行では AND 列から を決定できず、代わりに OR 列 を使います。
Q2: 得られた真理値表から直接演算名はどう決める?
A2: 真理値表を既知演算(AND, OR, XOR, NAND, 含意 など)と照合するか、ブール式に変換して簡約化すると演算名が分かります。本問では が導かれ、含意 と判定できます。
A2: 真理値表を既知演算(AND, OR, XOR, NAND, 含意 など)と照合するか、ブール式に変換して簡約化すると演算名が分かります。本問では が導かれ、含意 と判定できます。
Q3: 矛盾が出たらどうする?
A3: 与えられた複合列同士に矛盾があれば問題の表が不正確か、選択肢に正しい演算がない可能性があります。まず各行ごとに論理的に導出し、矛盾箇所を特定してください。
A3: 与えられた複合列同士に矛盾があれば問題の表が不正確か、選択肢に正しい演算がない可能性があります。まず各行ごとに論理的に導出し、矛盾箇所を特定してください。
関連キーワード: 真理値表、論理演算、含意、同値変形、逆算方法

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

