本文へスキップ

技術士試験(情報工学部門)・情報技術者試験。ファーストマクロ。


Since 2016.4.19

令和3年度 技術士第一次試験問題【専門科目】

V−5

基本論理演算のAND (論理積)、OR (論理和)、NOT (否定) を用いて構成した次の式のうち、排他的論理和 (XOR) となる式として、最も適切なものはどれか。
なお、
 a AND b を AND (a, b)、
 a OR b を OR (a, b)、
 NOT a を NOT (a)
と表現する。

@ XOR(a, b) = AND(OR(a, NOT(b)), OR(NOT(a), b))

A XOR(a, b) = OR(AND(a、NOT(b)), AND(NOT(a)、b))

B XOR(a, b) = AND(OR(a, b)、OR(a, b))

C XOR(a, b) = OR(AND(a, b), AND(a, b))

D XOR(a, b) = NOT(AND(a, OR(a, b)))


正解

A


解説

排他的論理和は、a, b の値が異なる時に1となる。
XOR(0, 0) = 0
XOR(0, 1) = 1
XOR(1, 0) = 1
XOR(1, 1) = 0

@ XOR(0, 0) = AND(OR(0, NOT(0)), OR(NOT(0), 0))
= AND(OR(0, 1), OR(1, 0))
= AND(1, 1) = 1 となる。
ちなみに選択肢の論理式は、排他的論理和の否定である。

A 正しい。便宜上、NOT(X) = X と表記とし、
AND(a, b) を c と置くと
OR(AND(a, b), AND(a, b)) = OR(AND(a, b), c)

ド・モルガンの法則より
(A ∩ B) ∪ C = (A ∪ C) ∩ (B ∪ C)、すなわち
OR(AND(A, B), C) = AND(OR(A, C), OR(B, C))が成り立つから

OR(AND(a, b), c)
= AND(OR(a, c), OR(b, c)
= AND(OR(a, AND(a, b)), OR(b, AND(a, b))
= AND(AND(OR(a, a), OR(a, b)), AND(OR(b, a), OR(b, b)))
= AND(OR(a, b), OR(b, a))
= AND(OR(a, b), OR(a, b))
とも変形できる。

B XOR(1, 1) = AND(OR(1, 1)、OR(1, 1))
= AND(1, 1) = 1 となる。

C XOR(1, 1) = OR(AND(1, 1), AND(1, 1))
= OR(1, 1) = 1 となる。

D XOR(0, 0) = NOT(AND(0, OR(0, 0)))
= NOT(AND(0, 0)) = NOT(0) = 1 となる。

V−4 目次 V−6