━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■第13回 ブール代数
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
前回までで、2進数の基本的な演算を説明しましたが、最後にもう一つ論理
数学のお話をしたいと思います。
タイトルにもある「ブール代数」というのは、イギリスの数学者「ジョージ
・ブール」によって考案された概念です。
システム開発において、「○○のとき××」のような条件分岐は頻繁に出て
きてプログラマを悩ませます。
プログラミングの不具合が最も起こりやすいところでもあります。
ブール代数の公理を覚えることで、複雑な条件式を整理したり、条件の矛盾
を指摘するのに役に立つと思います。
ブール代数の基本演算は、否定(NOT)、論理和(OR)、論理積(AND)の3
つから成ります。
前回扱った排他的論理和(XOR)は、上記の3つを合成して作ります。
※ブール代数では、∨や∧などの演算記号がありますが、このメルマガでは
AND、OR、NOTと表記します。意味は同じです。
●冪等律
「べきとうりつ」と読みます。
同じもの同士のOR、ANDは、結果も同じになります。
A OR A = A
A AND A = A
------------------ -------------------
| A | B | A OR B | | A | B | A AND B |
|---|---|--------| |---|---|---------|
| 0 | 0 | 0 | | 0 | 0 | 0 |
|---|---|--------| |---|---|---------|
| 1 | 1 | 1 | | 1 | 1 | 1 |
------------------ -------------------
●交換律
OR、ANDの順番を逆にしても、同じ結果になります。
A OR B = B OR A
A AND B = B AND A
------------------ -------------------
| A | B | A OR B | | A | B | A AND B |
|---|---|--------| |---|---|---------|
| 1 | 0 | 1 | | 1 | 0 | 0 |
|---|---|--------| |---|---|---------|
| 0 | 1 | 1 | | 0 | 1 | 0 |
------------------ -------------------
●結合律
複数回同じ演算を行うとき、演算の順番を入れ替えても答えが同じになりま
す。
(A OR B) OR C = A OR (B OR C)
(A AND B) AND C = A AND (B AND C)
---------------------------------------------
| A | B | C | (A OR B) OR C | A OR (B OR C) |
|---|---|---|---------------|---------------|
| 0 | 0 | 0 | 0 | 0 |
|---|---|---|---------------|---------------|
| 0 | 0 | 1 | 1 | 1 |
|---|---|---|---------------|---------------|
| 0 | 1 | 0 | 1 | 1 |
|---|---|---|---------------|---------------|
| 0 | 1 | 1 | 1 | 1 |
|---|---|---|---------------|---------------|
| 1 | 0 | 0 | 1 | 1 |
|---|---|---|---------------|---------------|
| 1 | 0 | 1 | 1 | 1 |
|---|---|---|---------------|---------------|
| 1 | 1 | 0 | 1 | 1 |
|---|---|---|---------------|---------------|
| 1 | 1 | 1 | 1 | 1 |
---------------------------------------------
-------------------------------------------------
| A | B | C | (A AND B) AND C | A AND (B AND C) |
|---|---|---|-----------------|-----------------|
| 0 | 0 | 0 | 0 | 0 |
|---|---|---|-----------------|-----------------|
| 0 | 0 | 1 | 0 | 0 |
|---|---|---|-----------------|-----------------|
| 0 | 1 | 0 | 0 | 0 |
|---|---|---|-----------------|-----------------|
| 0 | 1 | 1 | 0 | 0 |
|---|---|---|-----------------|-----------------|
| 1 | 0 | 0 | 0 | 0 |
|---|---|---|-----------------|-----------------|
| 1 | 0 | 1 | 0 | 0 |
|---|---|---|-----------------|-----------------|
| 1 | 1 | 0 | 0 | 0 |
|---|---|---|-----------------|-----------------|
| 1 | 1 | 1 | 1 | 1 |
-------------------------------------------------
●吸収律
以下のAとBの演算において、元のAと同値になることを吸収律と言います。
ORとANDが対となっているところがポイントです。
(A OR B) AND A = A
(A AND B) OR A = A
-------------------------- --------------------------
| A | B | (A OR B) AND A | | A | B | (A AND B) OR A |
|---|---|----------------| |---|---|----------------|
| 0 | 0 | 0 | | 0 | 0 | 0 |
|---|---|----------------| |---|---|----------------|
| 0 | 1 | 0 | | 0 | 1 | 0 |
|---|---|----------------| |---|---|----------------|
| 1 | 0 | 1 | | 1 | 0 | 1 |
|---|---|----------------| |---|---|----------------|
| 1 | 1 | 1 | | 1 | 1 | 1 |
-------------------------- --------------------------
●分配律
以下のAとBの演算において、Cの演算を分配できることを分配律と言います。
(A OR B) AND C = (A AND C) OR (B AND C)
(A AND B) OR C = (A OR C) AND (B OR C)
-------------------------------------------------------
| A | B | C | (A OR B) AND C | (A AND C) OR (B AND C) |
|---|---|---|----------------|------------------------|
| 0 | 0 | 0 | 0 | 0 |
|---|---|---|----------------|------------------------|
| 0 | 0 | 1 | 0 | 0 |
|---|---|---|----------------|------------------------|
| 0 | 1 | 0 | 0 | 0 |
|---|---|---|----------------|------------------------|
| 0 | 1 | 1 | 1 | 1 |
|---|---|---|----------------|------------------------|
| 1 | 0 | 0 | 0 | 0 |
|---|---|---|----------------|------------------------|
| 1 | 0 | 1 | 1 | 1 |
|---|---|---|----------------|------------------------|
| 1 | 1 | 0 | 0 | 0 |
|---|---|---|----------------|------------------------|
| 1 | 1 | 1 | 1 | 1 |
-------------------------------------------------------
------------------------------------------------------
| A | B | C | (A AND B) OR C | (A OR C) AND (B OR C) |
|---|---|---|----------------|-----------------------|
| 0 | 0 | 0 | 0 | 0 |
|---|---|---|----------------|-----------------------|
| 0 | 0 | 1 | 1 | 1 |
|---|---|---|----------------|-----------------------|
| 0 | 1 | 0 | 0 | 0 |
|---|---|---|----------------|-----------------------|
| 0 | 1 | 1 | 1 | 1 |
|---|---|---|----------------|-----------------------|
| 1 | 0 | 0 | 0 | 0 |
|---|---|---|----------------|-----------------------|
| 1 | 0 | 1 | 1 | 1 |
|---|---|---|----------------|-----------------------|
| 1 | 1 | 0 | 1 | 1 |
|---|---|---|----------------|-----------------------|
| 1 | 1 | 1 | 1 | 1 |
------------------------------------------------------
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━