http://www.sw.it.aoyama.ac.jp/2009/Math1/lecture5.html
© 2005-09 Martin J. Dürst 青山学院大学
[都合により削除]
今までの論理演算子以外に、回路やプログラミングによく使う演算子がある:
a^b
; 排他的論理和、exclusive or):
暗号学など幅広い応用論理関数を実際に計算する回路を作ることが可能
論理演算と電気 (電子) 回路の関係は 1938 年に C. Shannon が修士論文で発表
論理回路の部品は「ゲート」
あるゲートの出力を次のゲートの入力につなぐことが可能
実際の回路では出力を元のゲートに戻すことなどもあるが、その場合には論理回路ではなくなる。
論理回路の場合に真と偽の代わりに 1 と 0 を使うのが普通
NOT ゲート | AND ゲート | OR ゲート |
|
||
XOR ゲート | NAND ゲート | NOR ゲート |
|
この例は半加算器 (half adder) を実現する (足し算一ビットごとに二個必要)
入力 | 出力 | ||
A | B | S (sum) | C (carry) |
0 | 0 | 0 | 0 |
0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
NAND だけ (又は NOR だけ) で全ての論理関数が実現可能
証明 (NOR の場合):
標準系で ∧、∨、と ¬ を使って全ての論理関数が実現可能
上記の三つの演算子を NOR で実現できれば証明ができる。
¬ A =
A ∧ B =
A ∨ B =
Q.E.D.
NAND の場合には双対原理を使って証明できる。
(symbolic logic)
A | B | A ↔ B | A → B |
T | T | T | T |
T | F | F | F |
F | T | F | T |
F | F | T | T |
(「=」と「↔」などの使い分けに注意)
提出: 再来週の木曜日 (11月12日)、22:00 (厳守)、Moodle
にて。形式はプレーンテキスト。ファイル名は
solution5_xxxxxxxx.txt
(例,
メモ帳など; xxxxxxxx
は八桁の学籍番号)
二つの変数 (例: A, B) で可能な論理関数を全て表に列挙し、それぞれの関数を NAND だけの式で書きなさい。
A = F B = F |
A = F B = T |
A = T B = F |
A = T B = T |
簡単な式 |
F | F | F | F | F |
F | F | F | T | NAND(NAND(A, B)) |
F | F | T | F | ? |
? | ? | ? | ? | ? |