基本情報技術者 2011年 春期 午前(科目A) 問24
問題文
4ビットの入力データに対し、1の入力数が0個又は偶数個のとき出力が1に、奇数個のとき出力が0になる回路はどれか。

選択肢
ア:
イ:
ウ:
エ:(正解)
🔒 解説は解答すると表示されます
偶数パリティ判定回路【午前解説】
正解の理由
この問が求める論理は「4ビットの1の個数が偶数のとき1、奇数のとき0」を返す回路、すなわち4入力の偶数パリティ検出回路です。偶数パリティは全入力の排他的論理和(XOR)を取り、その結果を反転すれば得られます(偶数パリティ = NOT(A ⊕ B ⊕ C ⊕ D))。
選択肢のうち、エは左側の2つのXORで と を作り、右側のXORでそれらの排他的論理和 をとり、最後にNOTで反転しています。全体として を実現しており、1の個数が0個または偶数個のとき出力が1になります。
解法ステップ
- 問題文から目的関数を特定する。4入力で「1の個数が偶数のとき1」→偶数パリティ関数 。
- 回路図を記号で読み取る。
- OR記号の入力側にもう1本の弧があるのがXOR、三角形の先端に丸(バブル)があるのがNOT(インバータ)。
- 4つの選択肢は左側の2つのXORが共通で、右側のゲートの種類と最後のNOTの有無だけが異なる。
- 偶数パリティは「XOR → 全体をNOT」または「適切に組んだXNORの組合せ」で実現できる。図の各ゲートと反転の有無を確認し、論理式へ対応付ける。
- 各選択肢を論理式に置き換え、目的関数と一致するかを検証する。これによりエが一致することを確認する。
選択肢別の誤答解説
- ア:
- 右側がANDなので、出力は です。2組ともちょうど1個ずつ1を含むときだけ1になり、例えば入力がすべて0(1の個数0個)のとき0になるので条件に合いません。
- イ:
- 右側がORで最後にNOTなので、出力は です。2組とも0同士・1同士のときだけ1になり、例えば (1の個数2個)のとき0になるので条件に合いません。
- ウ:
- 右側がXORで最後の反転がないので、出力は です。1の個数が奇数のとき1になり、問題文の「偶数で1」と逆になります。
- エ:
- XORを3つ組み合わせて を作り、最後にNOTで反転しているので を実現しており、問題の条件に合致します。
よくある誤解
- XNORは常に結合律(結合則)を満たすと思い込む
- XNOR(同値)は一般に結合則(任意の括りで同じ結果になる性質)を満たすとは限りません。例えば と が等しくならない場合があります。したがって「複数入力のXNORを任意に括って組めば同じ」と短絡的に考えるのは誤りです。
- 図中の小さな線や丸の意味を見落とす
- 入力側や出力側の小さな記号(バブルや短い並行線)は論理の極性(反転)に直結します。これを誤って読み取ると、正しい/逆の関数を読んでしまいます。
- XORチェーンとXNORチェーンを同一視する
- XORチェーン(A⊕B⊕C⊕D)とその否定であるXNOR(偶数パリティ検出)は出力が逆なので、最終段に反転が必要かどうかを必ず確認してください。
補足コラム
偶数パリティ検出は通信やメモリの誤り検出で多用されます。回路実装上は以下のどちらかで構成することが多いです。
- XORを連結して全体を反転する:
- XNORのペア結合で実現する: たとえば が と等価になることを利用する(ただし、この等価性は括り方と中間の極性に注意して扱う必要があります)。
簡単な代数的証明(ペア結合が成り立つ理由):
- をXNOR、 をXORとすると 。
- 。
- 一般に なので式は となり、偶数パリティを表します。
- つまり、XNOR自体が任意に結合律を満たすわけではないが、適切にペアに分けることで4入力偶数パリティを正しく実現できる、という点が重要です。
FAQ
Q1: XNORを4入力でそのまま描いた回路は偶数パリティになるか?
A1: 多入力版の「同値」記号をどう定義するかによります。設計上は「全入力のXORを取って反転する」か、「適切にペアに分けたXNORの組合せ」で確実に偶数パリティを実現します。単に多入力のXNOR記号が描かれている場合、その仕様(内部でどのように結合しているか)を確認する必要があります。
A1: 多入力版の「同値」記号をどう定義するかによります。設計上は「全入力のXORを取って反転する」か、「適切にペアに分けたXNORの組合せ」で確実に偶数パリティを実現します。単に多入力のXNOR記号が描かれている場合、その仕様(内部でどのように結合しているか)を確認する必要があります。
Q2: 回路図のバブルはどこを注意すればいいか?
A2: 入力側バブルはその入力が反転されていること、出力側バブルは出力が反転されていることを示します。中間段の反転の有無で「偶数/奇数」どちらを検出するかが変わるので必ず確認してください。
A2: 入力側バブルはその入力が反転されていること、出力側バブルは出力が反転されていることを示します。中間段の反転の有無で「偶数/奇数」どちらを検出するかが変わるので必ず確認してください。
関連キーワード: 偶数パリティ、パリティ検出、XOR、XNOR、論理回路、誤り検出、極性反転、回路記号、排他的論理和

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

