会社の方から「ド・モルガンは通常の業務でも使うはずだから覚えておいた方が良いよ〜」とアドバイスもらったのでまとめてみようと思います。
昔、勉強した気もするのですが、説明してくださいと言われたら出来る気がしないのでアウトプットします。
ド・モルガンについて
まず、ド・モルガンって誰やって感じなのでwikipediaから引用させてもらいます。
ド・モルガンの法則(ド・モルガンのほうそく、De Morgan's laws)は、ブール論理や集合の代数学において、論理和と論理積と否定(集合のことばでは、合併と共通部分と補集合)の間に成り立つ規則性である。名前は数学者オーガスタス・ド・モルガン(Augustus de Morgan, 1806–1871)にちなむ。
ド☆モルガンでもなくドモルガンでもなく吃るガンでもなく、ド・モルガンさんですね。
インド生まれのイギリスの数学者のようです。へえ。
プログラミングでの規則性
!(P || Q)は!P && !Qに等しい
!(P && Q)は!P || !Qに等しい
日本語にすると
「PまたはQ」でないは「Pでない」かつ「Qでない」に等しい
「PかつQ」でないは「Pでない」または「Qでない」に等しい
ややこしいのでベン図でみてみる
ド・モルガンのベン図
今回はフリー素材のド・モルガンのベン図見つからなかったので
!(P || Q)は!P && !Qに等しい
上記だけ書きます。
!(P || Q)
PまたはQではないので緑が上記の部分
!P
Pではないのが上記の図
!Q
Qではないのが上記の図
!P && !Q
「Pでない」かつ「Qでない」箇所が緑の図
図で見るとわかりやすくなりました。
プログラミングで書いてみる
const a = 0;
const b = 0;
!(a || b) ? 1 : 0;
// 1が返却される
!a && !b ? 1 : 0;
// 1が返却される
まとめ
業務では意識して使っていこうと思うのと、こちらの記事は良い例題が思いつかなかったので、記事自体もブラッシュアップしていこうと思います。