基本情報技術者 2016年 秋期 午前(科目A) 問23
問題文
真理値表に示す3入力多数決回路はどれか。


選択肢
ア:(正解)
イ:
ウ:
エ:
3入力多数決回路の真理値表【午前2 解説】
要点まとめ
- 結論: 真理値表は「2つ以上が1のとき1」になる多数決であり、3つの2入力ANDをORで合成する回路、アが正解です。
- 根拠: 出力1の組合せは (0,1,1),(1,0,1),(1,1,0),(1,1,1) で、論理式は と表せます。
- 差がつくポイント: 図の左側がANDかORか、右端のバブル(否定)の有無で論理式が大きく変わる点に注意してください。
正解の理由
正解は ア です。
真理値表から出力が1となるのは2入力以上が1のときなので、各ペアのAND()を取ってそれらをORで合成すれば良く、アはまさに左側で各ペアのANDを取り右側でORしている回路だからです。ORを2段にしていても結局は全てのAND出力の論理和になり、真理値表と一致します。
真理値表から出力が1となるのは2入力以上が1のときなので、各ペアのAND()を取ってそれらをORで合成すれば良く、アはまさに左側で各ペアのANDを取り右側でORしている回路だからです。ORを2段にしていても結局は全てのAND出力の論理和になり、真理値表と一致します。
よくある誤解
- 「入力を先にORして後でANDすれば同じになる」と思い込み、式の順序(分配・結合)の違いを見落とす誤り。
- バブル(小丸)を見落としてNANDとANDを混同し、出力極性を逆に解釈してしまう。
- 中央と右端のゲートが複数段でも結合律で同値になることを忘れて、図の段数だけで不正解と判断する。
解法ステップ
- 真理値表から出力1となる行を列挙する: (0,1,1),(1,0,1),(1,1,0),(1,1,1)。
- 各行に対応する積項(ミンターン)を書き出すと 。ただし は既に のいずれかでカバーされる。
- したがって簡約した論理式は 。
- この式をそのまま回路に対応させると、各ペアの2入力ANDを取り、その出力をORで合成する回路になる(=選択肢ア)。
選択肢別の誤答解説
- ア(正解): 左で を作り、それらをORで合成して を実現。真理値表と一致。
- イ: 左で を作り、上2つをANDしてから最終的にORする構成。論理式は で、例えば のとき評価は になり真理値表の と不一致。
- ウ: 左はANDだが中央もAND、最終段がバブル付きNAND(出力は否定)になっている。論理式を整理すると最終出力は に相当する振る舞いとなり、(1,0,0) 等で期待値と合わない。
- エ: 左はOR、中央はAND、最終がバブル付きNAND。例えば では中央が0で最終NANDが1となり、真理値表の0と矛盾する。
(各誤答の具体的な評価例を示すと理解が早い:イやエは (A,B,C)=(1,0,0) をテストケースにすると判別しやすい)
補足コラム
- 多数決(majority)関数の代表的な表現は です。これは「少なくとも2つが1」の論理をそのまま書いた形です。
- 別の形としては と因数分解できます。実装上はコストやゲート遅延を考慮して最適化することがあります。
- 実験用に Python で真理値表を確認するコード例:
from itertools import product
def maj(a,b,c): return (a and b) or (b and c) or (c and a)
for a,b,c in product([0,1], repeat=3):
print(a,b,c, int(maj(a,b,c)))
FAQ
Q1: どうして を別に書かないのですか?
A1: は のいずれかが1のとき自動的に1になるため、和に含める必要はありません(冗長項)。
A1: は のいずれかが1のとき自動的に1になるため、和に含める必要はありません(冗長項)。
Q2: 同じゲートの組合せを段を変えて並べたら等価ですか?
A2: ORやANDは結合律・可換律が成り立つので、順序を入れ替えても等価ですが、否定(バブル)があると極性が変わるため注意が必要です。
A2: ORやANDは結合律・可換律が成り立つので、順序を入れ替えても等価ですが、否定(バブル)があると極性が変わるため注意が必要です。
Q3: NANDだけで多数決を作れますか?
A3: 可能です。NANDは完全集合であり、De Morgan を用いてAND/ORをNANDに置き換えれば実現できます。ただしゲート数は増えることが多いです。
A3: 可能です。NANDは完全集合であり、De Morgan を用いてAND/ORをNANDに置き換えれば実現できます。ただしゲート数は増えることが多いです。
関連キーワード: 多数決回路、ブール代数、論理回路、真理値表、組合せ回路

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

