基本情報技術者 2016年 春期 午前(科目A) 問23
問題文
問23 図の論理回路と等価な回路はどれか。


選択肢
ア:
イ:
ウ:(正解)
エ:
🔒 解説は解答すると表示されます
論理回路の等価変換【午前解説】
正解の理由
正解:ウ。
与えられた回路は左から右へ4個のNANDで構成される典型的なNANDだけでのXOR実現回路です。上記の式変形により、最終出力がAとBが異なるときだけ1になる排他的論理和であることが示せます。
与えられた回路は左から右へ4個のNANDで構成される典型的なNANDだけでのXOR実現回路です。上記の式変形により、最終出力がAとBが異なるときだけ1になる排他的論理和であることが示せます。
解法ステップ
- 左端NANDの出力を と置く: 。
- 上側中間NAND(入力は と )を とすると:
。
より、
。 - 下側中間NAND(入力は と )を とすると同様に:
。 - 最終出力 を計算:
(積和標準形)であり、
。これは と が等しいとき0、異なるとき1、すなわち 。 - よって回路はXORであり、記号としては選択肢のウ(XOR記号)が対応します。
選択肢別の誤答解説
- ア(OR に相当する記号): ORは を出力しますが、回路の挙動は であり一致しません。
- イ(AND に相当): ANDは 。左端NANDの出力や中間の組合せを無視すると誤ります。
- ウ(XOR に相当): 正解。図のNAND構成は標準的な4-NANDによるXOR実装です。
- エ(NAND に相当、出力にバブルあり): NAND単体は であり、最終出力はそれとは異なるため誤りです。
よくある誤解
- 「NANDはただの否定付きANDなので直感で誤答しやすい」:NANDをそのままANDやORと混同して短絡的に判断すると誤ることが多いです。
- 「左端のNAND出力だけ見て正解を決める」:出力が分岐してさらに中間ゲートで組合わさるため、全体挙動を評価する必要があります。
- 「出力にバブルがある=単純なNOTと誤認」:バブルは否定を示すが、ゲート全体の論理(NAND, NOR等)を考慮することが重要です。
補足コラム
- この回路は「NANDだけでXORを作る標準回路」で、NANDを4つ使って を実現します。TTLやCMOSの設計練習でよく出題されます。
- 同様にNORだけでもXORを作れますが、ゲート数や遅延が異なるため実装選択に影響します。
- 見分けのコツ:XORの図記号はOR記号に似ており、入力側にもう1本の並行した補助線(追加の曲線や線)が付くことが多いです。
(確認用)真理値表(手早くチェック)
- A=0,B=0 → Y=0(等しい)
- A=0,B=1 → Y=1(異なる)
- A=1,B=0 → Y=1(異なる)
- A=1,B=1 → Y=0(等しい)
簡単な検証用Python(参照)
def nand(x,y): return int(not (x and y))
for A in (0,1):
for B in (0,1):
L = nand(A,B)
U = nand(A,L)
D = nand(B,L)
Y = nand(U,D)
print(A,B,Y) # 0 1 1 等が得られれば XOR
FAQ
Q1: どうして中間段で が に変わるのですか?
A1: ド・モルガンと分配律を使うと であり、結果は です。
A1: ド・モルガンと分配律を使うと であり、結果は です。
Q2: XORは他の基本ゲートでどう実現できますか?
A2: XORは例えば や の形で表せます。NANDだけ、NORだけ、あるいは組合せで実装可能です。
A2: XORは例えば や の形で表せます。NANDだけ、NORだけ、あるいは組合せで実装可能です。
Q3: 記号の見分け方のコツは?
A3: ORに似た形で入力側にもう一本の補助線(曲線や短い線)があるのがXOR。ANDは扁平な左側、OR系は入力側が凹んだ形をしています。
A3: ORに似た形で入力側にもう一本の補助線(曲線や短い線)があるのがXOR。ANDは扁平な左側、OR系は入力側が凹んだ形をしています。
関連キーワード: XOR、NAND、論理回路、ブール代数、回路簡約

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

