問題本文
図1のように二つの入力に対し、一つの出力を行うボックスがある。このボックスへの入力は"賛成"か"反対"のいずれかであり、入力が二つとも"賛成"のときだけ"賛成"と出力し、その他のときは"反対"と出力する。図2のように、三つの入力を二つのボックスに入力したときの出力に関する記述のうち、正しいものはどれか。 図1: 入力1, 入力2 → ボックス → 出力 図2: 入力1, 入力2 → ボックス → (出力) → ボックス → 出力 (入力3も2つ目のボックスへ)
選択肢
- ア.入力が一つ以上"賛成"のときは常に、"賛成"と出力する。
- イ.入力が二つ以上"賛成"のときは常に、"賛成"と出力する。
- ウ.入力が二つ以上"反対"のときだけ、"反対"と出力する。
- エ.入力が三つとも"賛成"のときだけ、"賛成"と出力する。
正解
エ. 入力が三つとも"賛成"のときだけ、"賛成"と出力する。
解説
本問のボックスは2入力のAND論理回路(賛成=1,反対=0,両方1のときだけ1を出力)に等価. 図2では入力1と入力2のANDの結果と入力3を再びANDする2段接続のため,最終出力=(入力1 AND 入力2) AND 入力3 = 入力1 AND 入力2 AND 入力3となる. 3入力ANDと等価なので「3つとも賛成のときだけ賛成」となり,1つでも反対があれば結果は反対. ANDの結合律により段数を問わず同じ結果が得られる論理回路の基本性質を活用する. AND,OR,NOT,XORの組合せで任意の論理関数を表現できるのが論理回路の基本.
選択肢ごとの解説
- ア.誤り. 1つ以上賛成で賛成出力するのはOR(論理和)論理の挙動であり,AND論理を連結した本問の挙動とは異なる. ORは「少なくとも1個1」で1だが,ANDは「全部1」のときに1を出す相補的な論理である. この用語の正確な定義と他選択肢との明確な区別を押さえることが理解の要点
- イ.誤り. 2つ以上賛成で賛成出力するのは多数決(過半数判定)の挙動であり,AND論理の連結とは異なる結果になる. 多数決はANDとORの組合せで実装するもので,単純なANDの連結とは異なる別の論理関数である. この用語の正確な定義と他選択肢との明確な区別を押さえることが理解の要点
- ウ.誤り. 2つ以上反対のときだけ反対出力するのは多数決の補数のような挙動であり,AND論理の出力結果(1つでも反対なら反対)とは一致しない. 全数一致を要件とするANDの定義とは異なる論理になる. この用語の正確な定義と他選択肢との明確な区別を押さえることが理解の要点
- エ.正しい. 図2は3入力ANDと等価なので,3つとも賛成のときだけ賛成と出力するため. ANDのカスケード接続で論理が縮約され,3入力AND関数と等価な動作になることが論理代数の基本定理から導かれる. この用語の正確な定義と他選択肢との明確な区別を押さえることが理解の要点
ITパスポート 2014年 (平成26年 春期) の過去問一覧へ戻る・問57