真理値表を分かりやすく解説!

真理値表とは?簡単に解説!

ブール代数が基本

コンピュータでは0と1だけを使った「二進数」を使います

電気のOFFとONを0と1として取り扱っています。

たった2つの文字だけで様々なことができるのは論理計算をしているからです。

ブール代数は0と1をTRUEとFALSEで扱う

0と1を二進数の数字ではなく「真(TRUE):1」と「偽(FALSE):0」の二値として扱うブール代数という数学の分野があります。

このブール代数は論理計算の基礎です。

それでは計算例を具体的に見ていきましょう。

通常の二進数として扱う場合、

1+1=10

となります。

一方で、ブール代数では1+1=10ではありません。

なぜなら、ブール代数は0と1だけで表現するからです。

10のように二桁になることはありません。

ブール代数では1+1=1となります。

ブール代数と足し算引き算との違う点

ブール代数は普通の数字の足し引きではありません

以下のような違いがあります。

  • ブール代数では0と1のみで桁を繰上らない
  • 「+」は足し算ではなく「または」という意味 1 or 1→1です

これだけ聞いても一体何に使えるのかよく分からないですよね?

まずはブール代数の基本を理解しましょう。

ブール式の基本

ブール式では2つの(0,1), (0,1)

ブール代数は入力→出力という形式の関数、ブール関数はブール式で表現されます。

基本のブール式は

  1. 「・」AND, かつ
  2. 「+」OR, または
  3. 」 NOT, 否定

の三種類があります。

例えば、入力→出力のブール関数の例として

入力 x=1, y=0の時、出力はどうなるでしょうか?

これは、ブール式の記述によって変化します。

  • x OR y(x または y, x + y)の時は出力は1です。
  • x AND y(x かつ y, x + y)の時は出力は0です。
  • NOT x の時は出力は0です。

ブール式の基本AND, OR, NOTですべての論理式を表現できる

ANDはx=1, y=1の時のみ1になります。ORはx=0, y=0の時のみ0です。NOTxはx=1の時のみx=0になります。

この3つのブール式があればすべてのブール関数を表現できます。

なんでそうなるのか?ということはとりあえず考えず、そういう決まりであると思ってください。真理値表という入力と出力の組み合わせを確認すると仕組みが分かると思います。

ブール式の基本であるAND、OR、NOTはちゃんと電子回路で表現できます。詳しくは以下の記事をご覧ください。

AND回路とは? OR回路とは?OR回路とは? NOT回路とは?NOT回路とは?電子回路で作る方法

真理値表とは?

真理値表とはブール代数において入力に対してすべての出力結果を表にしたものです。

例えばx(0, 1)とy(0, 1)の入力に対して作れる組み合わせは22=4通りになります。

したがって、x AND yの真理値表は

xy出力( x AND y)
000
010
100
111

となります。真理値表は二進数の小さい順に並べます(000, 001, 010,011, 100…)

x OR yの真理値表は

xy出力( x OR y)
000
011
101
111

このようにブール関数のすべての出力値に対して表現するのが真理値表です。

入力がx, y, zの時は23=8通り(n個の入力に対して出力は2n個)

したがって、x AND yの真理値表は

xy出力( x AND y)
000
010
100
111

命題から真理値表を作成する

先ほどはブール関数 x AND yなどから真理値表を作成しましたが、次は視点を変えて命題から真理値表を作成してみましょう。

3値の場合は2*2*2=8通りなので

xyz出力
000 
001 
010 
011 
100 
101 
110 
111 

の真理値表ができます。

命題:入力の一つが真ならば、出力が真という真理値表を作成してみましょう。

命題に従って一つだけ「1」のものに「1」を入れるだけです。

xyz出力
0000
0011
0101
0110
1001
1010
1100
1110

の真理値表ができます。簡単ですね。

出力が1になっているものは3つあります。

命題は他にも3値が真の時のみ真などたくさんのパターンが作れます。

真理値表からブール式を導き出す方法

先ほどは命題から真理値表を作成しましたが、次は真理値表からブール式を導き出す方法を紹介します。

どんな真理値表からも少なくとも一つのブール式を導き出すことができます。

真理値表からブール式を導き出すには出力が1のところのみに着目します

先ほどの真理値表からブール式を導き出してみましょう。

xyz出力
0000
0011
0101
0110
1001
1010
1100
1110

1が出力されているものは上から3つあります。

  • NOT x, NOT y, z (0, 0, 1)
  • NOT x, y, NOTz (0, 1, 0)
  • x, NOT y, NOT z (1, 0, 0)

正準表現

正準表現の作り方は上で出てきた項目をそれぞれAND(・)で結合して作ります。

そうしてできた3つの項をOR(+)でつなぎます

(NOT x・ NOT y・ z)+(NOT x・y・NOT z)+(x・NOT y・NOT z)。

f (x, y, z)=(NOT x・ NOT y・ z)+(NOT x・y・NOT z)+(x・NOT y・NOT z)が真理値表から導き出したブール関数です。

このような表記を正準表現といいます。

このように真理値表の出力が1の項のみを抽出し、各項をANDでつないでできたそれぞれの項をORでつなぐことによって真理値表からブール式を導くことができます。

導き出したブール式をよく見ると使われているブール式はANDとORとNOTだけです。やはりAND、OR、NOT3つがあれば複雑なものであっても表現することができるというのが分かります。

2変数のブール関数一覧

入力値xとyの取りうる値に対する出力値を真理値表として表した時のブール関数の名称を全て挙げてみます。

ブール関数x0011
y0101
Constant 000000
Andx・y0001
x And Not yx・Not y0010
xx0011
Not x And yNot x・y0100
yy0101
Xorx・Not y + Not x・y0110
Orx + y0111
NorNot (x+y)1000
Equivalencex・y + Not x・Not y1001
Not yNot y1010
If y then xx+Not y1011
Not xNot x1100
If x then yNot x + y1101
NandNot(x・y)1110
Constant 111111

参考

参考 【入門】ブール代数まとめ【スッキリ見やすい】 | Golden-DatabaseGolden-Database 参考 Part4 ブール代数を理解する | 日経クロステック(xTECH)日経クロステック(xTECH)

書籍:コンピュータシステムの理論と実装: モダンなコンピュータの作り方, 2015, オライリージャパン

コメントを残す

メールアドレスが公開されることはありません。