「両方に当てはまる」「どちらかに当てはまる」「当てはまらない」。 この3つを図で表したものが集合、式で表したものが論理演算です。 中身は同じことなので、片方で分かればもう片方も分かります。 この回では、その対応から始めて、真理値表の埋め方とド・モルガンの法則まで進みます。
出典:基本情報技術者試験 シラバス Ver9.2 大分類1 基礎理論/中分類1 基礎理論/1. 離散数学
(4)集合と命題
集合,命題,ベン図の手法と考え方を理解する。
(5)論理演算
論理式の表現,論理演算,ド・モルガンの法則などの基本法則,真理値表の手法を理解する。
集合のことばと、論理のことばは対応している
会員名簿で考えます。A = メールを登録した人、B = 電話番号を登録した人とします。 この2つを円で描いたものがベン図です。
会員名簿の全体
A
B
A ∩ B
外の四角が名簿全体、左の円 A がメールを登録した人、右の円 B が電話を登録した人。重なった部分が積集合、2つの円を合わせた部分が和集合、円の外側(四角の中)が補集合です。
| 集合のことば | 記号 | 論理のことば | ある人について言うと |
|---|---|---|---|
| 和集合 | A ∪ B | 論理和(OR) | その人は、A と B の少なくとも一方に入っている |
| 積集合 | A ∩ B | 論理積(AND) | その人は、A と B の両方に入っている |
| 補集合 | Ā | 否定(NOT) | その人は、名簿全体のうち A に入っていない |
集合は「人の集まり」、論理は「当てはまるかどうか」を言っているだけで、指しているものは同じです。 ベン図で2つの円が重なった部分が積集合で、論理では「A かつ B」= AND にあたります。
ここで、ある1人について「A に入っているか」と問うと、答えは入っている(真)か 入っていない(偽)のどちらかに決まります。 このように真か偽かが決まる文を命題といいます。 次の節から出てくる 1 と 0 は、この真と偽のことです。
⚠️ 部分集合は、片方がもう片方にすっぽり入っている関係です。 「メールを登録した人は、全員が電話番号も登録している」なら、A は B の部分集合です。 このとき A ∩ B は A そのものになります。
真理値表 ── 起こりうる組み合わせを全部並べる
A と B が、それぞれ真(1)か偽(0)の2通りなので、組み合わせは 2×2 = 4通りです。 その4通りを全部書き出したものが真理値表です。
A と B の4通りと、その結果
A=0, B=0 … AND 0 / OR 0 / XOR 0
A=0, B=1 … AND 0 / OR 1 / XOR 1
A=1, B=0 … AND 0 / OR 1 / XOR 1
A=1, B=1 … AND 1 / OR 1 / XOR 0
AND は両方 1 のときだけ 1。OR はどちらかが 1 なら 1。XOR は違えば 1、同じなら 0。
ここで押さえるのは XOR(排他的論理和)です。OR とは最後の行だけが違います。 XOR は「どちらか一方だけが 1」のときに 1 で、両方 1 なら 0 です。 「違っていれば 1、同じなら 0」と覚えると、あとの計算で迷いません。
⚠️ 否定を付けた NAND(否定論理積)と NOR(否定論理和)もあります。 AND・OR の結果を、そのままひっくり返したものです。 たとえば NAND は、A=1・B=1 のときだけ 0 で、あとは 1 になります。NOR は、A=0・B=0 のときだけ 1 です。
練習
OR と XOR で結果が違うのは、A と B がどの組み合わせのときですか。
ビットごとの論理演算
2進数どうしの論理演算は、同じ位置の桁だけを見て、上の4通りのとおりに決めます。 ここで扱っているのは数の大きさではなく、0 と 1 の並びです。
A 1100 1010
B 1010 0110
─────
AND 1000 0010 ← A と B が両方 1 の桁だけ 1
OR 1110 1110 ← A と B のどちらかが 1 なら 1
XOR 0110 1100 ← A と B が違う桁だけ 1
桁ごとに独立して計算します。繰り上がりはありません(足し算ではないため)。
XOR は「2つの並びのどこが違うか」を取り出す演算です。 同じ値どうしの XOR は、すべての桁が 0 になります。
練習
1111 0000 XOR 1111 1111 の結果はどれですか。
ド・モルガンの法則 ── 否定を中に入れると、AND と OR が入れ替わる
「メールも電話も登録していない人」を、式で書いてみます。 NOT(A OR B)、つまり「A か B のどちらかに入っている、ということはない」です。 これは、否定を中に入れた形でも書けます。
先に、ひとつ予想してみましょう
NOT(A OR B) と、いつでも同じ値になるのはどれですか。
答え合わせです。次の2つがド・モルガンの法則で、どちらも同じ人の集まりを指します。
NOT(A AND B) = (NOT A) OR (NOT B) NOT(A OR B) = (NOT A) AND (NOT B)
否定を中に入れると、AND と OR が入れ替わります。
上の式を言葉にすると、「両方に当てはまる、ということはない」=「少なくとも一方には当てはまらない」です。 下の式なら、「どちらかに当てはまる、ということはない」=「両方とも当てはまらない」になります。
ド・モルガンで式を書き換える手順
- 外側の否定を、中の1つずつに配る。NOT(A AND B) なら、A と B のそれぞれに NOT が付きます。
- 真ん中の演算を入れ替える。AND は OR に、OR は AND になります。この入れ替えを忘れるのが、いちばん多い誤りです。
- 値を入れて確かめる。A=1・B=0 のように具体的な値を入れ、書き換える前と後が同じ結果になるかを見ます。1組だけ合っても同じ式とは限りません(たまたま一致することがあります)。疑わしいときは4通りすべてを当てます。
たとえば A AND B は、A=1・B=0 のときだけなら NOT(A OR B) と同じ 0 になります。A=0・B=0 で試すと、NOT(A OR B) は 1、A AND B は 0 で割れます。
ほかにも基本法則があります。分配則は、A AND (B OR C) = (A AND B) OR (A AND C) のように、かっこの外の演算を中の1つずつに配る形です。算数の分配法則と同じ形をしています。
まとめ
この回で持ち帰ること
1. 和集合=OR、積集合=AND、補集合=NOT。集合と論理は同じことを別の言い方で表している
2. 真理値表は、2つの入力なら4通りを全部書き出す
3. XOR は「違えば 1、同じなら 0」。OR と割れるのは両方 1 のときだけ
4. ド・モルガンは、否定を配って AND と OR を入れ替える。1組の値で必ず確かめる
次に読む
この記事で引用した資料
いずれも独立行政法人情報処理推進機構(IPA)が公表したものです。IPAは公表済みの試験問題について、教育目的での使用に許諾および使用料を不要としていますが、著作権は放棄していません。本記事では問題文を改変せずに引用しています。
本文の例(会員名簿の集合、8ビットどうしの論理演算、ド・モルガンの言い換え)と練習問題は、すべて当サイトが説明のために作ったものです。

