プログラム関係の備忘録。技術系記事1000記事以上を目指すブログ

【基本情報一問一答】テクノロジ系~離散数学②~

XとYの否定論理積 X NAND Yは,NOT(X AND Y)として定義される。X OR YをNANDだけを使って表した論理式はどれか。


((X NAND Y) NAND X) NAND Y

(X NAND X) NAND (Y NAND Y)

(X NAND Y) NAND (X NAND Y)

X NAND (Y NAND (X NAND Y))
[toggle title=”解答を表示”] 正解:イ

一見何を言っているのか意味がわからないが、否定論理積というのはどちらも1のときに結果を0とし、それ以外は1となる演算のこと。
論理積はどちらも1のときのみ1を返す。今回は否定論理なので逆。
NOTを使って表すとNOT(X AND Y)と定義できる。

X OR Yというのはどちらかに1があるときは1を返す。
0と0の場合以外は1になるということ。

それをNANDだけを使って表しているのはどれか、というのが問題の意図。

まずはそれぞれにx=0,Y=0を代入した結果が0になるかをみてみる
ア)
((X NAND Y) NAND X) NAND Y

((0 NAND 0) NAND 0) NAND 0

(1 NAND 0) NAND 0

1 NAND 0

1

イ)
(X NAND X) NAND (Y NAND Y)

(0 NAND 0) NAND (0 NAND 0)
1 NAND 1

0

ウ)
(X NAND Y) NAND (X NAND Y)

(0 NAND 0) NAND (0 NAND 0)

1 NAND 1

0

エ)
X NAND (Y NAND (X NAND Y))

0 NAND (0 NAND (0 NAND 0))

0 NAND (0 NAND 1)

0 NAND 1

1

結果が0になったイとウが正しい可能性があるので、次はx=0,Y=1の結果が1になるかを検証する
イ)
(X NAND X) NAND (Y NAND Y)

(0 NAND 0) NAND (1 NAND 1)

1 NAND 0

1

ウ)
(X NAND Y) NAND (X NAND Y

(0 NAND 1) NAND (0 NAND 1)

1 NAND 1

0

イがX OR Yの条件を満たすので、正解はイ
[/toggle]