今回は数学やプログラミングなどに役立つ論理,集合,論理演算について解説していきます.
そもそも「論理」と「集合」とは
まず論理と集合は何かについて理解しておきましょう.
論理とは
正しい”事実”や”仮定”を基にして結論を導き出すこと
「論理」とは正しい”事実”や”仮定”を基にして結論を導き出すことです.逆に言えば「何となく」や「だいたい」という理由で決めるものは論理とは言えないわけです.
特にプログラムの場合,仮定や条件を「命題」と呼び,その真偽で判別を行います.命題は必ず真か偽のどちらかに決まるものです.例えば,
- 30は28より大きい→真
- 30は28より小さい→偽
- 30は約28である→命題でない
となります.
集合とは
明確に定義された対象の集まり
集合とははっきりと定義された対象を集めたもののことを言います.
例えば,”偶数の集まり“であれば[2, 4, 6, 8, …]となり,“5の倍数の集まり“であれば[5, 10, 15, 20, …]となるわけです.
2, 4, 6, 8などの,この集合の1つ1つを「要素」と呼びます.
ベン図を使って集合を表す
集合を考えるときには「ベン図」がよく使われます.例えば,先ほどの偶数と5の倍数をベン図に表すとこんな感じになります.
このAとBが重なっている範囲を「交わり」,交わりを含めたAかBのどちらかの範囲内を「結び」と呼びます.
6種類の論理演算
とある複数の条件(命題)を満たしているか,つまり真か偽かを考えることを論理演算と言います.
基本的な論理演算には以下の三種類
- 論理積
- 論理和
- 否定
があります.条件が真のとき「1」を,偽のとき「0」を表すと考え,この「1」「0」を論理値と呼びます.二つの条件A,Bがあるとして,以下の例を見ていきましょう.
1. 論理積(AND)
AとB両方が真のときのみ,結果を真とする演算です.A AND Bのように表します.
2. 論理和(OR)
AとBのうち一つでも真のとき,結果を真とする演算です.A OR Bのように表します.
3. 否定(NOT)
ある条件が真のときは結果として偽を,逆に条件が偽の時は結果を真とする演算です.$\bar{A}$と表し,補集合とも言います.
4. 排他的論理和(XOR)
二つの条件のどちらか一方のみが真のとき,結果を真とする演算です.A XOR B,A⊕Bなどのように表します.
5. 否定論理積(NAND)
条件のどちらか一方が偽のとき,結果を真とする演算です.名前の通り論理積の否定ですね.A NAND Bと表します.
6. 否定論理和(NOR)
二つの条件どちらも偽のときのみ,結果を真とする演算です.こちらも名前の通り論理和の否定です.A NOR Bと表します.
NANDとNORはそれぞれANDとORの真逆(NOT AND, NOT OR)と覚えておきましょう!
便利なド・モルガンの法則
バーは分割,和→積,積→和へ
論理演算ではド・モルガンの法則と呼ばれる便利なものがあります.イメージとしては「否定の記号「バー」が全体に付いているとき,それぞれに分割できる.和は積,積は和に変わる」といった感じです.
この規則を使うと集合の演算が楽になることがありますので,ぜひ覚えておきましょう.ベン図を使うと理解が簡単になります.
コメント