ド・モルガンの法則っていうのをはじめ聞いた時名前の印象ばかり強かった。

ド・モルガンの法則と論理回路
課題が出てたので、せっかくだから俺はNOR でNOT, OR, ANDを作ってみるー。


一応、URL先にもあるけどNORの真理値表

A B A NOR B 結果
0 0 0 NOR 0 1
0 1 0 NOR 1 0
1 0 1 NOR 0 0
1 1 1 NOR 1 0

A NOR B = !(A or B)っていう理解でおk

NOTを作る

反転させたいだけなのでこれは簡単
A NOR A = NOT A

A A NOR A 結果
1 1 NOR 1 0

NOR の解説に出したA NOR B = !(A or B)に
A NOR A をあてはめると!(A or A)。
A or A = Aって略せるから
!(A or A) -> !A
って事ねー。

ORを作る

すげー単純。
NORはORの否定なのだから、その更に否定をしてあげればOK
NORが

A B A NOR B 結果
0 0 0 NOR 0 1
0 1 0 NOR 1 0
1 0 1 NOR 0 0
1 1 1 NOR 1 0

これで

ORが

A B A OR B 結果
0 0 0 OR 0 0
0 1 0 OR 1 1
1 0 1 OR 0 1
1 1 1 OR 1 1

だもんね。結果逆になってるだけ
!( !(A OR B) ) って事で
A NOR Bの否定、つまりNOTをしてあげれば良い。
NOT (A NOR B)です。
さっきのNOT A = A NOR Aがあるから
Aの部分にA NOR Bを当てはめてあげる。
(A NOR B) NOR (A NOR B)
ということ。
*1

ANDを作る

そしてORやNOTが理解できてればそんな難しくない
NORが

A B A NOR B 結果
0 0 0 NOR 0 1
0 1 0 NOR 1 0
1 0 1 NOR 0 0
1 1 1 NOR 1 0

これになってるのに対して

A B A AND B 結果
0 0 0 AND 0 0
0 1 0 AND 1 0
1 0 1 AND 0 0
1 1 1 AND 1 1

ってことになってほしい。
実は、結果に注目するとA=0 B=0 が1になってたのに対して
A=1 B=1 が1になればいいわけです。
つまりAとBが逆になってる
逆にしたければNOTすればOK
(NOT A) NOR (NOT B)にすると

A B NOT A NOT B (NOT A) NOR (NOT B) 結果
0 0 1 1 1 NOR 1 0
0 1 1 0 1 NOR 0 0
1 0 0 1 0 NOR 1 0
1 1 0 0 0 NOR 0 1

って事になるので
NOT A とNOT BをNOTの式当てはめてあげれば
(A NOR A) NOR (B NOR B)
って事になる。


というわけで解いてみたという話。
解いた後に書くのもなんだけど、こういうのは、先に求める結果と式を書くといい。

A B 過程用の空白 結果
0 0 1
0 1 0
1 0 0
1 1 0

こんな風に。

補足:昔学校でやった事あるので、なつかしいなーって事で書いてます。

*1:同じAやBが出てくるのでわかりづらいかも