Engineering Tools for AI

コンピューター工学学習資料

論理演算子の説明

AND、OR、NOT、XOR、NAND、NORなどの論理演算を、真理値表、ブール代数、デジタル回路、プログラミング、AI質問例とともに整理します。

基本論理

NOT演算

表記
¬A, A'
プログラミング
回路
インバーターゲート

真偽値を反転します。

Aがログイン状態なら、¬Aはログインしていない状態です。

真理値表

AOut
01
10

基本論理

AND演算

表記
A·B, AB
プログラミング
回路
ANDゲート

すべての入力が真のときだけ真になります。

isLoggedIn && hasPermission

真理値表

ABOut
000
010
100
111

基本論理

OR演算

表記
A+B
プログラミング
回路
ORゲート

入力のうち少なくとも1つが真なら真になります。

isAdmin || isOwner

真理値表

ABOut
000
011
101
111

派生演算

XOR演算

表記
A⊕B
プログラミング
回路
XORゲート

2つの入力が異なるとき真になります。

半加算器の和出力はA XOR Bです。

真理値表

ABOut
000
011
101
110

派生演算

NAND演算

表記
¬(A·B)
プログラミング
回路
NANDゲート

ANDの否定です。NANDゲートだけで任意のブール回路を構成できます。

A NAND BはNOT (A AND B)です。

真理値表

ABOut
001
011
101
110

派生演算

NOR演算

表記
¬(A+B)
プログラミング
回路
NORゲート

ORの否定です。NORだけでも任意のブール回路を構成できます。

A NOR Bは2つの入力がどちらも偽のときだけ真になります。

真理値表

ABOut
001
010
100
110

派生演算

XNOR演算

表記
¬(A⊕B)
プログラミング
回路
XNORゲート

2つの入力が同じとき真になります。

A XNOR Bはブール値の等価比較のように動作します。

真理値表

ABOut
001
010
100
111

ビット演算

ビットAND

表記
bit mask
プログラミング
回路
ビットごとのAND演算

各ビット位置にANDを適用します。論理&&とは異なります。

0101 & 0011 = 0001

プログラミング

短絡評価

表記
evaluation rule
プログラミング
回路
プログラミングでの評価方式

最初の式だけで結果が決まる場合、2番目の式は実行されないことがあります。

user && user.name

ブール代数の法則

恒等法則

A ∧ 1 = A, A ∨ 0 = A

中立的な真理値と結合してもAは変わりません。

支配法則

A ∧ 0 = 0, A ∨ 1 = 1

1つの固定入力が全体の結果を決定できます。

補元法則

A ∧ ¬A = 0, A ∨ ¬A = 1

命題とその否定は同時に真にはなりませんが、少なくとも一方は真です。

ド・モルガンの法則

¬(A ∧ B) = ¬A ∨ ¬B, ¬(A ∨ B) = ¬A ∧ ¬B

否定をANDやORの内側へ移すとき、演算子が入れ替わります。

吸収法則

A ∨ (A ∧ B) = A, A ∧ (A ∨ B) = A

繰り返される条件がより具体的な条件を吸収して式を簡単にします。