集合の演算は、日常の「かつ」「または」を正確に扱うための数学的道具です。
ベン図で直感をつかみ、ド・モルガンの法則の「なぜ」を理解すれば、命題の証明にも自在に使えるようになります。
3-1で「集合とは何か」「部分集合とは何か」を学びました。 ここからは、2つ以上の集合を組み合わせて新しい集合を作る操作、つまり集合の演算を学びます。
日常会話で「AかつB」「AまたはB」という言い方をしますが、これを数学的に正確に定義するのが、 共通部分と和集合です。
2つの集合 $A$ と $B$ の共通部分(交わり)とは、 $A$ にも $B$ にも属する要素を全部集めた集合です。記号 $\cap$(キャップ)を使って書きます。
$$A \cap B = \{x \mid x \in A \text{ かつ } x \in B\}$$たとえば $A = \{1, 2, 3, 4, 6\}$、$B = \{1, 2, 4, 8\}$ のとき、 両方に属する要素は $1, 2, 4$ なので $A \cap B = \{1, 2, 4\}$ です。
2つの集合 $A$ と $B$ の和集合(結び)とは、 $A$ または $B$ の少なくとも一方に属する要素を全部集めた集合です。 記号 $\cup$(カップ)を使って書きます。
$$A \cup B = \{x \mid x \in A \text{ または } x \in B\}$$同じ例で、$A \cup B = \{1, 2, 3, 4, 6, 8\}$ です。 注意すべきは、$1, 2, 4$ は $A$ にも $B$ にも属しますが、和集合では重複して数えないということです。
集合の演算は、論理の「かつ(AND)」「または(OR)」を集合の言葉に翻訳したものです。
$A \cap B$:「$A$ に属する かつ $B$ に属する」要素の集合
$A \cup B$:「$A$ に属する または $B$ に属する」要素の集合
記号の覚え方:$\cap$ は上が閉じていて「狭い」イメージ(両方を満たすから条件が厳しい)。 $\cup$ は上が開いていて「広い」イメージ(どちらか一方でよいから条件がゆるい)。
✕ 誤:「$A$ または $B$」は「$A$ か $B$ のどちらか一方のみ」
○ 正:数学の「または」は「少なくとも一方」。両方に属していてもよい。
日常語の「コーヒーまたは紅茶」は「どちらか一方」の意味で使うことが多いですが、 数学の「$x \in A$ または $x \in B$」は「両方に属する場合も含む」のです。 $A \cap B \neq \emptyset$ のとき、共通部分の要素は $A \cup B$ にも含まれます。
共通部分:$A \cap B = \{x \mid x \in A \text{ かつ } x \in B\}$
和集合:$A \cup B = \{x \mid x \in A \text{ または } x \in B\}$
3つの集合 $A, B, C$ に対しても、共通部分と和集合を考えることができます。
$A \cap B \cap C = \{x \mid x \in A \text{ かつ } x \in B \text{ かつ } x \in C\}$ は、 3つすべてに属する要素の集合。 $A \cup B \cup C = \{x \mid x \in A \text{ または } x \in B \text{ または } x \in C\}$ は、 少なくとも1つに属する要素の集合です。
✕ 誤:$A \cup B$ を「$A$ と $B$ の両方に属する要素」と読んでしまう
○ 正:$A \cup B$ は「少なくとも一方」、$A \cap B$ が「両方」
$\cap$ はアルファベットの「n」に似ていて、「intersection(交わり)」の頭文字と覚えると混乱しにくくなります。 $\cup$ は「union(和)」の「u」に似ています。
集合の $\cap$(かつ)と $\cup$(または)は、プログラミングの論理演算子 AND と OR にそのまま対応します。
Python では set_a & set_b(共通部分)、set_a | set_b(和集合)と書きます。
データベースの SQL でも、WHERE 句の AND と OR は集合の $\cap$ と $\cup$ と同じ意味です。
集合の演算は、情報科学の基礎そのものです。
集合の演算をするとき、まず全体集合を決める必要があります。 全体集合とは、「いま考えている要素の全体」を表す集合で、記号 $U$ で表します。
たとえば「10以下の正の整数」を全体集合とするなら $U = \{1, 2, 3, \dots, 10\}$ です。 この中で、「3の倍数の集合」$A = \{3, 6, 9\}$ のように、$U$ の部分集合だけを考えます。
全体集合 $U$ の部分集合 $A$ に対して、$A$ の補集合とは、 $U$ の要素のうち $A$ に属さないもの全体の集合です。$\overline{A}$ で表します。
$$\overline{A} = \{x \mid x \in U \text{ かつ } x \notin A\}$$上の例で $A = \{3, 6, 9\}$ なら、$\overline{A} = \{1, 2, 4, 5, 7, 8, 10\}$ です。 「$A$ でないもの」を集めた集合、と考えればわかりやすいでしょう。
論理の世界で「$p$ でない」(否定 $\overline{p}$)があるように、 集合の世界では「$A$ に属さない」(補集合 $\overline{A}$)があります。
$\cap$ = 「かつ」、$\cup$ = 「または」、$\overline{\phantom{A}}$ = 「でない」。 集合の3つの演算は、論理の3つの結合子(AND, OR, NOT)にぴったり対応しています。
この対応を意識すると、第3章後半の「命題と条件」で集合の言葉がそのまま使えるようになります。
補集合には、直感的に明らかな性質がいくつかあります。
(1) $A \cap \overline{A} = \emptyset$ ($A$ に属し、かつ $A$ に属さない要素は存在しない)
(2) $A \cup \overline{A} = U$ ($A$ に属するか属さないか、必ずどちらか一方)
(3) $\overline{(\overline{A})} = A$ (「$A$ でない」の「でない」は $A$ に戻る)
(4) $\overline{U} = \emptyset$, $\overline{\emptyset} = U$
$\overline{A} = \{x \mid x \in U \text{ かつ } x \notin A\}$ なので、
$\overline{(\overline{A})} = \{x \mid x \in U \text{ かつ } x \notin \overline{A}\}$
$x \notin \overline{A}$ とは「$x$ は $U$ に属しかつ $A$ に属さない、ということはない」こと。 $x \in U$ の前提のもとでは、$x \notin \overline{A}$ は $x \in A$ と同値です。
よって $\overline{(\overline{A})} = \{x \mid x \in U \text{ かつ } x \in A\} = A$。 ($A \subseteq U$ なので $x \in A$ ならば自動的に $x \in U$)
✕ 誤:$A = \{2, 4, 6\}$ の補集合は $\{1, 3, 5, 7, 8, \dots\}$(全体集合が不明)
○ 正:補集合は全体集合 $U$ が決まって初めて定義できる。 $U = \{1, 2, \dots, 8\}$ なら $\overline{A} = \{1, 3, 5, 7, 8\}$。$U = \{1, 2, \dots, 10\}$ なら $\overline{A} = \{1, 3, 5, 7, 8, 9, 10\}$。
全体集合が変われば補集合も変わります。問題文で全体集合が指定されているか、必ず確認しましょう。
集合の関係を視覚的にとらえるのに最も有効なツールが、ベン図(Venn diagram)です。 長方形で全体集合 $U$ を表し、その中に円で集合 $A$, $B$ などを描きます。
ベン図を使えば、$A \cap B$(円の重なり部分)、$A \cup B$(円全体)、$\overline{A}$(円の外側)が 一目で把握できます。
全体集合 $U = \{1, 2, 3, 4, 5, 6, 7, 8, 9\}$ とし、$A = \{1, 2, 3, 4, 6\}$、$B = \{1, 3, 5, 6, 9\}$ とします。 ベン図上に要素を書き込んで、各集合を確認してみましょう。
2つの集合 $A$, $B$ のベン図を描くと、$U$ の要素は必ず次の4つの領域のどれか1つに属します。
(i) $A$ にも $B$ にも属する($A \cap B$)
(ii) $A$ のみに属する($A \cap \overline{B}$)
(iii) $B$ のみに属する($\overline{A} \cap B$)
(iv) どちらにも属さない($\overline{A} \cap \overline{B}$)
この4領域は互いに重なりがなく、合わせると $U$ 全体になります。 集合の問題を解くとき、この「4領域」を意識すると整理しやすくなります。
有限集合 $A$ の要素の個数を $n(A)$ で表します。ベン図の4領域を使うと、 和集合の要素の個数について次の重要な公式が導けます。
$$n(A \cup B) = n(A) + n(B) - n(A \cap B)$$
また、補集合の個数は $n(\overline{A}) = n(U) - n(A)$ です。 「全体から引く」という考え方は、場合の数(数学A)でも非常によく使います。
✕ 誤:$n(A) = 5$, $n(B) = 4$ だから $n(A \cup B) = 9$
○ 正:$A \cap B \neq \emptyset$ のとき、$n(A \cup B) = n(A) + n(B) - n(A \cap B)$。 共通部分があれば和集合の個数は $n(A) + n(B)$ より小さくなる。
$n(A \cup B) = n(A) + n(B)$ が成り立つのは、$A \cap B = \emptyset$(共通部分がない)の場合だけです。 問題で $A \cap B = \emptyset$ が明示されていないかぎり、$n(A \cap B)$ を引くのを忘れないようにしましょう。
3つの集合の場合、和集合の個数は次の包除原理(inclusion-exclusion principle)で求められます。
$$n(A \cup B \cup C) = n(A) + n(B) + n(C) - n(A \cap B) - n(B \cap C) - n(A \cap C) + n(A \cap B \cap C)$$
「全部足して、2つの共通部分を引いて、3つの共通部分を足し戻す」。 $n$ 個の集合に対しても同様のパターンが続きます。包除原理は組合せ論や確率論の基本ツールとして、 大学数学やコンピュータサイエンスで広く使われています。
補集合と共通部分・和集合の間には、非常に美しい関係があります。 それがド・モルガンの法則です。
全体集合 $U$ の部分集合 $A$, $B$ に対して、
(1) $\overline{A \cup B} = \overline{A} \cap \overline{B}$
(2) $\overline{A \cap B} = \overline{A} \cup \overline{B}$
この法則は一見すると覚えにくいですが、日本語に翻訳すると自然に理解できます。
(1) $\overline{A \cup B} = \overline{A} \cap \overline{B}$
「$A$ または $B$ に属する」の否定は、「$A$ に属さない かつ $B$ に属さない」
(2) $\overline{A \cap B} = \overline{A} \cup \overline{B}$
「$A$ かつ $B$ に属する」の否定は、「$A$ に属さない または $B$ に属さない」
日本語で読めば当たり前のことです。「りんごもみかんも好き」の否定は 「りんごが嫌い、または、みかんが嫌い(少なくとも一方が嫌い)」。 「でない」をつけると「かつ」と「または」が入れ替わる。これがド・モルガンの法則の本質です。
法則(1) $\overline{A \cup B} = \overline{A} \cap \overline{B}$ をベン図で確認しましょう。
左辺 $\overline{A \cup B}$:まず $A \cup B$($A$ と $B$ のどちらかに属する部分)を考え、その補集合をとる。 つまり「$A$ にも $B$ にも属さない部分」。
右辺 $\overline{A} \cap \overline{B}$:$\overline{A}$($A$ の外)と $\overline{B}$($B$ の外)の共通部分。 つまり「$A$ の外であり、かつ $B$ の外でもある部分」。
ベン図上で両方とも同じ領域(Section 3で述べた4領域のうち (iv) の部分)を指していることが確認できます。
ベン図での「確認」だけでなく、要素の帰属関係を追う「証明」も重要です。 2つの集合が等しいことを示すには、「左辺の要素は右辺に属する」「右辺の要素は左辺に属する」の両方向を示します。
[$\overline{A \cup B} \subseteq \overline{A} \cap \overline{B}$ の証明]
$x \in \overline{A \cup B}$ とする。このとき $x \notin A \cup B$。
$A \cup B$ の定義より、「$x \in A$ または $x \in B$」が成り立たない。
よって「$x \notin A$ かつ $x \notin B$」。
すなわち $x \in \overline{A}$ かつ $x \in \overline{B}$。したがって $x \in \overline{A} \cap \overline{B}$。
[$\overline{A} \cap \overline{B} \subseteq \overline{A \cup B}$ の証明]
$x \in \overline{A} \cap \overline{B}$ とする。このとき $x \in \overline{A}$ かつ $x \in \overline{B}$。
すなわち $x \notin A$ かつ $x \notin B$。
よって「$x \in A$ または $x \in B$」は成り立たない。すなわち $x \notin A \cup B$。
したがって $x \in \overline{A \cup B}$。
以上より $\overline{A \cup B} = \overline{A} \cap \overline{B}$。 $\square$
法則(2)も同様に証明できます。あるいは、法則(1)で $A$ を $\overline{A}$、$B$ を $\overline{B}$ に置き換え、 $\overline{(\overline{A})} = A$ を使うことでも導けます。
$U = \{1, 2, 3, 4, 5, 6, 7, 8, 9\}$、$A = \{1, 2, 3, 4, 6\}$、$B = \{1, 3, 5, 6, 9\}$ のとき、 $\overline{A \cup B}$ を求めてみましょう。
方法1(直接):$A \cup B = \{1, 2, 3, 4, 5, 6, 9\}$ なので $\overline{A \cup B} = \{7, 8\}$。
方法2(ド・モルガン):$\overline{A} = \{5, 7, 8, 9\}$、$\overline{B} = \{2, 4, 7, 8\}$ なので $\overline{A} \cap \overline{B} = \{7, 8\}$。
どちらの方法でも同じ結果になります。 要素が多い場合や $A \cup B$ を直接求めるのが大変な場合は、ド・モルガンの法則を使うほうが効率的です。
✕ 誤:$\overline{A \cup B} = \overline{A} \cup \overline{B}$(補集合をとっても $\cup$ のまま)
○ 正:$\overline{A \cup B} = \overline{A} \cap \overline{B}$($\cup$ が $\cap$ に変わる)
ド・モルガンの法則の核心は「$\cup$ と $\cap$ が入れ替わる」ことです。 補集合をとるときに演算記号をそのまま残してしまうのは、最も多い間違いです。 迷ったら日本語に戻しましょう。「$A$ または $B$」の否定は「$A$ でない かつ $B$ でない」です。
ここまで、集合の3つの演算($\cap$, $\cup$, 補集合)と、それらの間の関係(ド・モルガンの法則)を学びました。 最後に、集合の演算が数学全体でどのように使われるかを整理しましょう。
| 日本語 | 集合の記号 | 論理の記号 | 意味 |
|---|---|---|---|
| かつ | $A \cap B$ | $p \land q$ | 両方を満たす |
| または | $A \cup B$ | $p \lor q$ | 少なくとも一方を満たす |
| でない | $\overline{A}$ | $\overline{p}$ | 否定 |
| ド・モルガン | $\overline{A \cup B} = \overline{A} \cap \overline{B}$ | $\overline{p \lor q} = \overline{p} \land \overline{q}$ | 否定で演算が逆転 |
集合と論理は「同じ構造を持つ2つの言語」です。 集合で成り立つ法則は、そのまま論理でも成り立ちます。 この対応を理解しておくと、命題の証明(3-3)で大いに役立ちます。
Q1. $A = \{1, 3, 5, 7\}$, $B = \{2, 3, 5, 8\}$ のとき、$A \cap B$ と $A \cup B$ を求めてください。
Q2. $U = \{1, 2, 3, 4, 5, 6, 7, 8\}$, $A = \{2, 4, 6, 8\}$ のとき、$\overline{A}$ を求めてください。
Q3. ド・モルガンの法則 $\overline{A \cap B} = \overline{A} \cup \overline{B}$ を日本語で言い換えてください。
Q4. $n(A) = 10$, $n(B) = 8$, $n(A \cap B) = 3$ のとき、$n(A \cup B)$ はいくつですか?
Q5. 2つの集合 $A$, $B$ のベン図を描くと、$U$ の要素は何個の領域に分かれますか? それぞれを記号で表してください。
この記事で学んだ内容を、入試形式の問題で確認しましょう。
$U = \{x \mid x \text{ は10以下の正の整数}\}$ を全体集合とする。 $A = \{1, 2, 4, 5, 10\}$, $B = \{2, 5, 6, 8, 10\}$ のとき、 次の集合を求めよ。
(1) $A \cap B$ (2) $A \cup B$ (3) $\overline{A}$ (4) $\overline{A} \cap \overline{B}$
(1) $A \cap B = \{2, 5, 10\}$
(2) $A \cup B = \{1, 2, 4, 5, 6, 8, 10\}$
(3) $\overline{A} = \{3, 6, 7, 8, 9\}$
(4) $\overline{A} \cap \overline{B} = \{3, 7, 9\}$
方針:$U$ の要素を書き出し、ベン図に整理して各領域の要素を確認する。
(1) $A$ にも $B$ にも属する要素は $2, 5, 10$。
(2) $A$ または $B$ の少なくとも一方に属する要素をすべて集める。
(3) $U$ の要素のうち $A$ に属さないもの:$3, 6, 7, 8, 9$。
(4) $\overline{B} = \{1, 3, 4, 7, 9\}$ なので、$\overline{A} \cap \overline{B} = \{3, 7, 9\}$。
※ (4) はド・モルガンの法則より $\overline{A \cup B}$ に等しい。実際、$U \setminus (A \cup B) = \{3, 7, 9\}$ と一致。
100人の生徒に、英語と数学の好きな教科を調査したところ、英語が好きな生徒は65人、 数学が好きな生徒は48人、両方好きな生徒は30人であった。 英語も数学も好きでない生徒は何人か。
$17$ 人
方針:英語が好きな生徒の集合を $A$、数学が好きな生徒の集合を $B$ とし、和集合の個数公式を使う。
$n(A) = 65$, $n(B) = 48$, $n(A \cap B) = 30$
$n(A \cup B) = n(A) + n(B) - n(A \cap B) = 65 + 48 - 30 = 83$
英語も数学も好きでない生徒は $\overline{A} \cap \overline{B} = \overline{A \cup B}$(ド・モルガンの法則)。
$n(\overline{A \cup B}) = n(U) - n(A \cup B) = 100 - 83 = 17$(人)
全体集合を実数全体の集合とする。 $A = \{x \mid -1 \leq x \leq 5\}$, $B = \{x \mid 2 < x < 8\}$ のとき、 $\overline{A} \cup \overline{B}$ を求めよ。
$\overline{A} \cup \overline{B} = \{x \mid x < -1 \text{ または } x > 5 \text{ または } x \leq 2\}$
整理すると:$\overline{A} \cup \overline{B} = \{x \mid x \leq 2 \text{ または } x > 5\}$
方針:ド・モルガンの法則 $\overline{A} \cup \overline{B} = \overline{A \cap B}$ を使い、$A \cap B$ を先に求める。
$A \cap B = \{x \mid -1 \leq x \leq 5\} \cap \{x \mid 2 < x < 8\} = \{x \mid 2 < x \leq 5\}$
$\overline{A \cap B} = \{x \mid x \leq 2 \text{ または } x > 5\}$
ド・モルガンの法則より $\overline{A} \cup \overline{B} = \overline{A \cap B} = \{x \mid x \leq 2 \text{ または } x > 5\}$
⚠️ $\overline{A}$ と $\overline{B}$ を個別に求めて和集合を取る方法でも解けますが、 ド・モルガンの法則を使うと計算が簡潔になります。
全体集合 $U$ の部分集合 $A$, $B$ について、$n(U) = 50$, $n(A) = 30$, $n(B) = 25$ であるとき、
(1) $n(A \cap B)$ のとりうる値の範囲を求めよ。
(2) $n(\overline{A} \cap \overline{B})$ のとりうる値の範囲を求めよ。
(1) $5 \leq n(A \cap B) \leq 25$
(2) $0 \leq n(\overline{A} \cap \overline{B}) \leq 20$
方針:$n(A \cup B) = n(A) + n(B) - n(A \cap B)$ と、$A \cup B \subseteq U$ の制約を使う。
(1) $n(A \cup B) = 30 + 25 - n(A \cap B) = 55 - n(A \cap B)$
$A \cup B \subseteq U$ より $n(A \cup B) \leq 50$。よって $55 - n(A \cap B) \leq 50$。すなわち $n(A \cap B) \geq 5$。
また、$A \cap B \subseteq B$ より $n(A \cap B) \leq n(B) = 25$。 同様に $A \cap B \subseteq A$ より $n(A \cap B) \leq 30$ だが、25のほうが厳しい。
よって $5 \leq n(A \cap B) \leq 25$。
(2) ド・モルガンの法則より $\overline{A} \cap \overline{B} = \overline{A \cup B}$。
$n(\overline{A} \cap \overline{B}) = n(\overline{A \cup B}) = n(U) - n(A \cup B) = 50 - (55 - n(A \cap B)) = n(A \cap B) - 5$
$n(A \cap B)$ の範囲は (1) より $5 \leq n(A \cap B) \leq 25$ なので、 $0 \leq n(A \cap B) - 5 \leq 20$。
よって $0 \leq n(\overline{A} \cap \overline{B}) \leq 20$。