Panda Noir

JavaScript の限界を究めるブログです。

受験終わったので論理式について書いてみます。

やっと受験終わったので、前から書きたかった論理式の記事です。プログラミングで論理式って重要ですよね。いろいろと。ifを短くできたりなんやかんやです。

基本編

基本用語解説

論理式の変換法則ここを参照しつつ進めます。というか、ここの法則の解説がメインになると思います。

まず記号の意味から説明しましょう。AとBというのは、真と偽のどちらかの値だけをとるものです。例えばスイッチはONとOFFの2つですね。このとき、ONを真または偽とします(普通は真ですので真で話を進めていきます)。また、1や0がでてきますが、1は真、0は偽を表します。途中で^がでてきますが、これは逆ということです。例えばAが真なら^Aは偽です。

要するにAとBというスイッチです。次は、+と×の意味です。これらは、2つ以上の要素を判定して真偽値(真または偽)を返します。+は、「〜または」です。例えばA+Bなら、「AまたはBが真(ON)のとき、真(ON)を返す」です。×は、「〜かつ」です。例えばA×Bならば「Aが真かつBが真のとき真を返す」です。「返す」は省略させていただきます。

さて、記号の説明をしたところで、法則の説明です。まずは交換法則です。これは当然ですね。「BまたはAが真のとき真」と「AまたはBが真のとき真」は同じですね。×のほうも同様に同じです。

結合法則

結合法則です。A+(B+C)は、「Aが真またはBまたはCが真」みたいなかんじです。わけわかりませんね。感覚で理解してください。

恒等の法則

恒等の法則です。A+1は、「Aまたは真が真のとき真」です。これ、真が真ってもう満たしてることがわかってますね。そのため、Aはいらないです。A×1は「Aが真かつ真が真のとき真」です。真は常に真のため、関係がないことがわかります。そのため、Aとなります。A+0は「Aまたは偽が真のとき真」です。ここまで読んだひとならわかりますね。割愛します。A×0は「Aが真がつ偽が真のとき真」です。偽は真にならないので当然Aに関係なく偽となります。

同一の法則

同一の法則です。A+A=Aは、「AまたはAが真のとき真」です。つまりAが真なら真ですから、A+A=Aとなります。A×A=Aも同様です。

補元の法則

補元の法則です。A+^A=1は、「Aまたは^Aが真のとき真」です。Aが偽なら^Aは真、Aが真なら^Aは偽となりどちらでも真となることがわかります。逆にA×^Aは、Aが偽なら^Aは真、Aが真なら^Aは偽となりどちらでも真とならないことがわかります。

復元の法則

復元の法則です。^^A=Aこれはわかりますね。二重否定ですから、Aが真なら^Aは偽、^Aをさらに否定するので真となります。Aが偽でも同様です。

分配の法則

あと3つなのでがんばってください。分配の法則です。これはA×(B+C)=A×B+A×Cというものです。直感的にわかりづらいですがひとつひとつみていきましょう。まず、これは「BまたはCが真かつAが真のとき真」とかくとわかりやすいですかね。つまり、「BまたはCが真」かつ「Aが真」なのです。そのため、A×BまたはA×C、つまりA×B+A×Cということですね。

吸収の法則

吸収の法則です。たぶん一番直感的にわかりづらいとおもいます。A+A×Bというのは、「Aが真」もしくは「Aが真かつBが真」です。これって、Bが真でもAが真でないと真にならないことがわかると思います。つまり、Bは関係なく、Aが真なら真、Aが偽なら偽となります。これはつまりAとなり、A+A×B=Aとなります。A×(A+B)も同様に「AまたはBが真」かつ「Aが真」で、Aが真でないならば真となりません。そのため、A×(A+B)=Aとなります。

ドモルガンの法則

ではラスト、ドモルガンの法則です。これは難しいです。まず基礎から確認です。A×BとA+Bは、4通りありますよね。

  1. Aも真でBも真
  2. Aは偽でBは真
  3. Aは真でBは偽
  4. Aも偽でBも偽

では、解説していきます。^(A×B)=^A+^Bは「Aが真かつBが真」が真でない時と、「Aが偽またはBが偽」の時です。ここで気をつけて欲しいです。「Aが真かつBが真」が真でない=「Aが真かつBが真」が偽ではないです。上に記してある通り、A×Bは4通りあって、「Aが真かつBが真」が真でないのは、「Aも真でBも真」以外の3通りとなります。つまり「「Aが真かつBが真」以外のとき」となります。つまり、2,3,4があてはまります。では、^A+^Bはどうでしょうか?なんと、2,3,4になります。びっくりですね。これで、証明されました。

この調子で^(A+B)=^A×^Bも解いていきます。^(A+B)は「AまたはBが真のとき」が真でないとき。つまり4です。^A×^Bは4となります。これで等しいことが証明されました。

終わりに

今回はかいてある通り基本編です。応用編の全加算器などは次回にまわします。こんなに長くなるとは思いませんでした。