[数学][会社]*社内数学勉強会 第三回 ド・モルガンの法則

段々難しくなってきました><


ド・モルガンの法則とは

(¬A)∨(¬B)は、¬(A∧B)と置き換える事ができ、(¬A)∧(¬B)は¬(A∨B)と置き換える事ができる。この法則の事。

わけわかめ

訳が解らないので、自然言語に直してみる。

(¬A)∨(¬B)

Aで無い、または、Bで無い

¬(A∧B)

AかつB、で無い

(¬A)∧(¬B)

Aでない、かつ、Bでない

¬(A∨B)

AかつB、で無い

まだよくわからない

日本語にすると余計わからないかも><
多分、¬(A∧B)とかっこでひとまとめにしているのがポイントで、 雰囲気的にはこれも「AかBのどちらかが¬」て意味合いなんだと思う。

Tips ∨(または)と∧(かつ)の覚え方
  1. または、の方を覚えるよ!
  2. また→またと言えばコマネチ→V(ブイの字)→∨
  3. 残ったもう一つが∧(かつ)

「またはコマネチ」と覚えよう!やったね!もう覚えたね!


双対性

登場人物が

  • Aさん
  • Bさん
  • Cさん
  • Dさん
  • Eさん

だったとして、

AさんとBさんとCさんとDさんがいない時

という条件文を書こうとしたら、

Eさん以外がいない時

としても同じ意味になる。条件文が多くなるとIFじゃなくてUNLESSの方がいい、みたいな。


カルノー

ランプゲームで例える

青と黄色の二つのランプがあり、

  • 青が消えていて黄色が点いている時はスイッチを押す
  • 青が点いていて黄色が消えている時はスイッチを押す
  • 両方とも点いている時はスイッチを押す

というゲームがあったとします。

なお、以降はこのように略します。

  • 青× 黄○
  • 青○ 黄×
  • 青○ 黄○

これを論理式にすると、
(青→A 黄→B とする)

((¬A)∧B) ∨ (A∧(¬B)) ∨ (A∧B)

となります。
これをカルノー図という図で表します。○がある部分が、ゲームのスイッチを押す時です。

B B
F T
A F
A T

この○を、隣接している同士でグループ化(隣り合ってる同士を繋げる事)すると、Aのfalseの行と、Bのtrueの列にグループ化できます。
これを論理式にすると、
(¬A)∨B
となります。


ランプが3つになったら
  • 青× 黄× 赤×
  • 青▲ 黄× 赤○
  • 青× 黄○ 赤▲
  • 青○ 黄○ 赤○

(▲はどちらでもよいの意味)
青→A 黄→B 赤→C

これをカルノー図にすると

BC BC BC BC
FF FT TT TF
A F
A T

となります。
○がついてる部分をグループ化すると、Aのfalseの列と、Afalse Bfalse Ctrue、Afalse Btrue Ctrue、Atrue Bfalse Ctrue、Atrue Btrue Ctrueの四角になります(超解りづらい><)。
これを論理式に直すと、
(¬A)∧C
となります。

これらがプログラミングの何に役立つかと言うと、複雑な条件式を作る時に簡潔に書けるようになる。
ただ余りにも簡潔にしすぎると、一年後とかに見直したら時に自分でも「?」ってなるよね、との事。



3つめの値

これまではtrueとfalseだけだったけど、ここでもう一つの値が登場する。それが未定義値を意味するundefined.
未定義値っていうのは、真でも偽でもなく、「わからない」とかそんな感じの。プログラムだと言語によって微妙に扱いが違ったりする。
true、false、undefinedの3つの値を使った論理を3値論理という。

条件付論理積(かつ)

A&&B

*A *B *A&&B
T T T
T F F
T U U
F T F
F F F
F U F
U T U
U F U
U U U
  • Aがtrueなら、Bの値はA&&Bと同じになる
  • Aがfalseなら、Bは関係なくfalse
  • Aがundefinedなら、Bは関係なくundefined
  • B&&Aとは結果が異なる

条件付論理和(または)

*A *B *A||B
T T T
T F T
T U T
F T T
F F F
F U U
U T U
U F U
U U U
  • Aがtrueなら、Bは関係なくtrue
  • Aがfalseなら、Bの値がA||Bの値と同じ
  • Aがundefienedなら、Bは関係なくundefiened
  • B||Aとは結果が異なる

3値論理での否定(ノット)

*A *!A
T F
F T
U U
  • 未定義はひっくり返しても未定義なので、undefienedはundefienedになる。