「何個あるか」を正確に数えるのは、意外と難しい問題です。
ベン図と $n(A)$ の記法を使えば、重複を見逃さず、漏れなく数え上げる原理が手に入ります。
3-1で集合の基本(要素、部分集合、共通部分、和集合など)を学びました。 ここからは、集合の要素が何個あるかに注目します。
要素の個数が有限である集合を有限集合、 要素の個数が有限でない集合(自然数全体の集合 $\mathbb{N}$ など)を無限集合といいます。 有限集合については、その要素の個数を考えることができます。
集合 $A$ の要素の個数を $n(A)$ で表します。 $n$ は number(数)の頭文字です。 たとえば $A = \{2, 4, 6, 8, 10\}$ なら $n(A) = 5$、 空集合 $\emptyset$ は要素を1つも持たないので $n(\emptyset) = 0$ です。
$n(A)$ の記法を導入する最大の意義は、集合の関係式を、数(個数)の等式に翻訳できることです。
集合の演算($\cup$, $\cap$, 補集合)には、対応する個数の公式があります。 つまり、「集合の問題」を「方程式の問題」に変換して解けるのです。
この記事のゴールは、集合の演算と個数の公式の対応関係を理解することです。
$n(A)$ の記法を使うと、集合の性質を数の等式で表現できます。 たとえば、$A \subset B$($A$ が $B$ の部分集合)ならば $n(A) \leq n(B)$ です。 集合の包含関係が、個数の大小関係に翻訳されたわけです。
✕ 誤:「$n(A) = n(B)$ だから $A = B$」
○ 正:$n(A) = n(B)$ は「要素の個数が等しい」だけ。 $A = \{1, 2, 3\}$、$B = \{4, 5, 6\}$ なら $n(A) = n(B) = 3$ ですが、$A \neq B$ です。
$n(A)$ は集合の「サイズ」を表す数値であり、中身の情報は失われます。 個数が同じでも、要素が異なれば別の集合です。
大学数学では、集合の「大きさ」を表す概念として濃度(cardinality)を学びます。 有限集合の濃度は要素の個数そのものですが、無限集合にも濃度を定義できます。
たとえば、自然数全体 $\mathbb{N}$ と偶数全体 $\{2, 4, 6, \ldots\}$ は、直感的には偶数の方が「少ない」ように見えますが、 $n \mapsto 2n$ で1対1に対応づけられるため、実は同じ濃度を持ちます。 「無限の大きさ」を厳密に比較するのが濃度の理論です。
2つの集合 $A$, $B$ の和集合 $A \cup B$($A$ または $B$ の少なくとも一方に属する要素全体)の要素の個数を考えましょう。 「$A$ の個数と $B$ の個数を足せばいい」と思いたくなりますが、それでは正確な答えが出ません。
なぜでしょうか? $A$ にも $B$ にも属する要素(つまり $A \cap B$ の要素)を2回数えてしまうからです。 $n(A) + n(B)$ では、共通部分の要素が重複してカウントされています。
和集合の個数を正しく求めるには、重複して数えた分を引く必要があります。
$n(A) + n(B)$ の中には $A \cap B$ の要素が2回含まれています。 1回分を引けば正しい個数になります。
$$n(A \cup B) = n(A) + n(B) - n(A \cap B)$$
この「足して、重複分を引く」という発想が、この記事全体を貫く原理です。 3つ以上の集合に拡張しても、同じ原理が使われます。
一般の場合:
$$n(A \cup B) = n(A) + n(B) - n(A \cap B)$$
$A \cap B = \emptyset$(互いに素)の場合:
$$n(A \cup B) = n(A) + n(B)$$
ベン図を使って確認しましょう。$A$ と $B$ の各部分の要素の個数を $a$, $b$, $c$ とおきます。
・$A$ のうち $B$ に属さない部分の個数:$a$
・$A \cap B$ の個数:$c$
・$B$ のうち $A$ に属さない部分の個数:$b$
このとき $n(A) = a + c$, $n(B) = b + c$, $n(A \cap B) = c$ です。
$$n(A) + n(B) - n(A \cap B) = (a + c) + (b + c) - c = a + b + c = n(A \cup B)$$
$c$(共通部分)が2回足されて1回引かれるので、最終的に1回分だけ残ります。
100人の生徒のうち、数学が得意な生徒が65人、英語が得意な生徒が53人、 数学も英語も得意でない生徒が25人でした。数学も英語も両方得意な生徒は何人でしょうか。
全体集合 $U$ を100人の生徒全体、数学が得意な生徒の集合を $A$、英語が得意な生徒の集合を $B$ とおきます。 数学も英語も得意でない生徒は $\overline{A \cup B}$($A \cup B$ の補集合)に属するので、 $n(\overline{A \cup B}) = 25$ です。
よって $n(A \cup B) = n(U) - n(\overline{A \cup B}) = 100 - 25 = 75$。 個数定理より
$$75 = 65 + 53 - n(A \cap B)$$$n(A \cap B) = 65 + 53 - 75 = 43$。 したがって、数学も英語も両方得意な生徒は 43人 です。
✕ 誤:「100 - 25 = 75 だから、数学も英語も得意な生徒は75人」
○ 正:75人は「数学または英語が得意な生徒」の人数($n(A \cup B)$)であって、 「数学かつ英語が得意な生徒」の人数($n(A \cap B)$)ではない。
「または」($\cup$)と「かつ」($\cap$)の区別は集合の基本です。 必ずベン図をかいて、どの部分を求めているか確認する習慣をつけましょう。
全体集合 $U$ の部分集合 $A$ に対して、$A$ に属さない要素全体の集合を $A$ の補集合 $\overline{A}$ といいます。 補集合の要素の個数は、全体から $A$ の要素の個数を引くだけで求められます。
$$n(\overline{A}) = n(U) - n(A)$$
$U = A \cup \overline{A}$(全体 = $A$ に属するもの + 属さないもの)かつ $A \cap \overline{A} = \emptyset$ より、 $n(U) = n(A) + n(\overline{A})$。これを変形すれば上の式が得られます。
$n(\overline{A}) = n(U) - n(A)$ の本当の威力は、「数えたいもの」を直接数えるのが大変なとき、 「数えたくないもの」を引くことで間接的に求められる点にあります。
たとえば「5でも6でも割り切れない整数の個数」を直接数えるのは面倒ですが、 「5または6で割り切れる整数の個数」を求めて全体から引けばすぐにわかります。
この「全体から引く」発想は、確率の余事象($P(\overline{A}) = 1 - P(A)$)と 全く同じ原理です。
補集合の公式は、ド・モルガンの法則と組み合わせると特に強力です。 ド・モルガンの法則は次の通りです。
たとえば「$A$ でも $B$ でも割り切れない」個数は $n(\overline{A} \cap \overline{B})$ ですが、 これはド・モルガンの法則より $n(\overline{A \cup B}) = n(U) - n(A \cup B)$ と変形できます。 $n(A \cup B)$ は個数定理で求められるので、計算が一気に楽になります。
3桁の自然数(100から999まで)のうち、5の倍数でも6の倍数でもないものの個数を求めてみましょう。
全体集合を3桁の自然数全体 $U$ とすると、$n(U) = 999 - 100 + 1 = 900$ です。 5の倍数の集合を $A$、6の倍数の集合を $B$ とします。
$n(A) = 199 - 20 + 1 = 180$($5 \times 20 = 100$ から $5 \times 199 = 995$ まで)。 $n(B) = 166 - 17 + 1 = 150$($6 \times 17 = 102$ から $6 \times 166 = 996$ まで)。 $A \cap B$ は5と6の最小公倍数30の倍数の集合なので、 $n(A \cap B) = 33 - 4 + 1 = 30$($30 \times 4 = 120$ から $30 \times 33 = 990$ まで)。
$n(A \cup B) = 180 + 150 - 30 = 300$。 求める個数は $n(\overline{A \cup B}) = n(U) - n(A \cup B) = 900 - 300 = 600$ 個です。
✕ 誤:「100から999までの5の倍数の個数は $999 \div 5 = 199.8$ だから199個」
○ 正:1から $n$ までの $k$ の倍数の個数は $\left\lfloor \dfrac{n}{k} \right\rfloor$ 個($\lfloor \cdot \rfloor$ は切り捨て)。 $m$ から $n$ までの $k$ の倍数の個数は、$\left\lfloor \dfrac{n}{k} \right\rfloor - \left\lfloor \dfrac{m-1}{k} \right\rfloor$ 個。
「100から999までの5の倍数」は $\lfloor 999/5 \rfloor - \lfloor 99/5 \rfloor = 199 - 19 = 180$ 個。 「$m$ から」を忘れて $n$ だけで計算するのが典型的な間違いです。
✕ 誤:「5の倍数かつ6の倍数」は $5 \times 6 = 30$ の倍数
上の例ではたまたま正しいですが、これは5と6が互いに素(最大公約数が1)だからです。
○ 正:「$A$ の倍数かつ $B$ の倍数」は、$A$ と $B$ の最小公倍数の倍数です。 たとえば「4の倍数かつ6の倍数」は $4 \times 6 = 24$ の倍数ではなく、$\text{lcm}(4, 6) = 12$ の倍数です。
「かつ」→ 最小公倍数を反射的に思い出せるようにしましょう。
2つの集合の個数定理 $n(A \cup B) = n(A) + n(B) - n(A \cap B)$ を、 3つの集合に拡張しましょう。考え方は同じ「重複を補正する」です。
3つの集合 $A$, $B$, $C$ について $n(A) + n(B) + n(C)$ を計算すると、 ちょうど2つの集合に共通する要素は2回、 3つの集合すべてに共通する要素は3回数えてしまいます。
そこで、2つずつの共通部分 $n(A \cap B)$, $n(B \cap C)$, $n(C \cap A)$ を引きます。 すると、2つに共通する要素の重複は解消されますが、 3つすべてに共通する要素は「3回足されて3回引かれた」ので0回になってしまいます。 最後にもう一度 $n(A \cap B \cap C)$ を足して調整します。
$$n(A \cup B \cup C) = n(A) + n(B) + n(C)$$
$$\quad - n(A \cap B) - n(B \cap C) - n(C \cap A)$$
$$\quad + n(A \cap B \cap C)$$
包除原理の名前は「包(含める)」と「除(除く)」から来ています。 英語では inclusion-exclusion principle です。
要素がいくつの集合に属しているかによって、何回カウントされるかが変わります。 包除原理は、どの要素もちょうど1回だけカウントされるように調整する公式です。
・1つの集合だけに属する要素:1回足される → 引かれない → 1回(正しい)
・2つの集合に属する要素:2回足される → 1回引かれる → 1回(正しい)
・3つの集合に属する要素:3回足される → 3回引かれる → 1回足される → 1回(正しい)
ベン図で各部分の要素の個数を $a, b, c, d, e, f, g$ とおきます ($a$:$A$ のみ、$b$:$B$ のみ、$c$:$C$ のみ、 $d$:$A \cap B$ のみ、$e$:$B \cap C$ のみ、$f$:$C \cap A$ のみ、 $g$:$A \cap B \cap C$)。
$n(A) + n(B) + n(C) = (a+d+f+g) + (b+d+e+g) + (c+e+f+g) = a+b+c+2d+2e+2f+3g$
ここから $n(A \cap B) + n(B \cap C) + n(C \cap A) = (d+g) + (e+g) + (f+g) = d+e+f+3g$ を引き、 $n(A \cap B \cap C) = g$ を足すと
$$(a+b+c+2d+2e+2f+3g) - (d+e+f+3g) + g = a+b+c+d+e+f+g = n(A \cup B \cup C)$$確かに公式が成り立つことが確認できます。
50人の生徒が数学、英語、国語の3教科の試験を受けました。 数学の合格者30人、英語の合格者25人、国語の合格者20人、 数学と英語の両方に合格した生徒13人、英語と国語の両方に合格した生徒10人、 国語と数学の両方に合格した生徒7人、3教科すべてに合格した生徒3人のとき、 少なくとも1教科に合格した生徒は何人でしょうか。
数学、英語、国語の合格者の集合をそれぞれ $A$, $B$, $C$ とすると、 包除原理より
$$n(A \cup B \cup C) = 30 + 25 + 20 - 13 - 10 - 7 + 3 = 48 \text{ (人)}$$したがって、少なくとも1教科に合格した生徒は 48人。 また、3教科すべてに不合格の生徒は $50 - 48 = 2$ 人です。
上の問題で、ベン図の各部分の生徒数も求めてみましょう。 3つすべてに共通する部分から「外側に向かって」引き算で求めていくのがコツです。
$A \cap B$ のみ($C$ に属さない):$13 - 3 = 10$ 人。 $B \cap C$ のみ($A$ に属さない):$10 - 3 = 7$ 人。 $C \cap A$ のみ($B$ に属さない):$7 - 3 = 4$ 人。 $A$ のみ:$30 - 10 - 4 - 3 = 13$ 人。 $B$ のみ:$25 - 10 - 7 - 3 = 5$ 人。 $C$ のみ:$20 - 7 - 4 - 3 = 6$ 人。 検算:$13 + 5 + 6 + 10 + 7 + 4 + 3 = 48$。正しいことが確認できます。
包除原理は $n$ 個の集合にも拡張できます。一般に $n$ 個の集合 $A_1, A_2, \ldots, A_n$ に対して
$$n\!\left(\bigcup_{i=1}^{n} A_i\right) = \sum_{i} n(A_i) - \sum_{i < j} n(A_i \cap A_j) + \sum_{i < j < k} n(A_i \cap A_j \cap A_k) - \cdots$$
符号が $+, -, +, -, \ldots$ と交互に変わるのが特徴です。 大学の組合せ論では、この一般化された包除原理が「完全順列の個数」「オイラーの $\varphi$ 関数」 など多くの問題の解法の基礎になります。
集合の要素の個数に関する公式は、すべて「重複を補正する」という1つの原理に基づいています。 ここで全体像を整理しましょう。
| 公式 | 意味 | 使いどころ |
|---|---|---|
| $n(A \cup B) = n(A) + n(B) - n(A \cap B)$ | 2集合の和集合 | 「AまたはB」の個数 |
| $n(\overline{A}) = n(U) - n(A)$ | 補集合 | 「Aでない」の個数、余事象 |
| 3集合の包除原理 | 3集合の和集合 | 「A,B,Cの少なくとも1つ」の個数 |
Q1. $A = \{1, 3, 5, 7, 9\}$, $B = \{2, 3, 5, 7\}$ のとき、$n(A \cup B)$ を求めてください。
Q2. $n(U) = 50$, $n(A) = 30$ のとき、$n(\overline{A})$ はいくつですか?
Q3. $n(A) = 40$, $n(B) = 35$, $n(A \cup B) = 60$ のとき、$n(A \cap B)$ を求めてください。
Q4. 包除原理で3集合の場合、$n(A \cap B \cap C)$ を「足す」のはなぜですか?
Q5. 1から100までの整数のうち、3の倍数の個数を求めてください。
この記事で学んだ内容を、入試形式の問題で確認しましょう。
40人のクラスで、犬を飼っている生徒は18人、猫を飼っている生徒は12人、犬も猫も飼っていない生徒は15人である。犬も猫も飼っている生徒は何人か。
5人
方針:全体集合、犬の集合、猫の集合を設定し、個数定理を使う。
犬を飼っている生徒の集合を $A$、猫を飼っている生徒の集合を $B$、全体集合を $U$(40人)とする。
犬も猫も飼っていない生徒は $\overline{A \cup B}$ に属するので、$n(\overline{A \cup B}) = 15$。
$n(A \cup B) = n(U) - n(\overline{A \cup B}) = 40 - 15 = 25$
個数定理より $n(A \cup B) = n(A) + n(B) - n(A \cap B)$
$25 = 18 + 12 - n(A \cap B)$
$n(A \cap B) = 30 - 25 = 5$
よって、犬も猫も飼っている生徒は 5人。
1から100までの整数のうち、2, 3, 5の少なくとも1つの倍数であるものの個数を求めよ。
74個
方針:2の倍数の集合 $A$、3の倍数の集合 $B$、5の倍数の集合 $C$ として、3集合の包除原理を使う。
$n(A) = \lfloor 100/2 \rfloor = 50$、$n(B) = \lfloor 100/3 \rfloor = 33$、$n(C) = \lfloor 100/5 \rfloor = 20$
$n(A \cap B) = \lfloor 100/6 \rfloor = 16$($\text{lcm}(2,3) = 6$)
$n(B \cap C) = \lfloor 100/15 \rfloor = 6$($\text{lcm}(3,5) = 15$)
$n(C \cap A) = \lfloor 100/10 \rfloor = 10$($\text{lcm}(5,2) = 10$)
$n(A \cap B \cap C) = \lfloor 100/30 \rfloor = 3$($\text{lcm}(2,3,5) = 30$)
$$n(A \cup B \cup C) = 50 + 33 + 20 - 16 - 6 - 10 + 3 = 74$$
よって、2, 3, 5の少なくとも1つの倍数は 74個。
全体集合 $U$ の部分集合 $A$, $B$ について $n(U) = 100$, $n(A) = 70$, $n(B) = 45$ のとき、$n(A \cap B)$ の最大値と最小値を求めよ。
最大値 $45$、最小値 $15$
方針:$n(A \cap B)$ の取りうる範囲を、個数定理と集合の性質から求める。
最大値:$A \cap B \subset B$ なので $n(A \cap B) \leq n(B) = 45$。 $B \subset A$ のとき($B$ のすべての要素が $A$ にも属するとき)等号が成り立つ。 $n(A) = 70 \geq 45 = n(B)$ なので、$B \subset A$ は可能。よって最大値は $45$。
最小値:$n(A \cup B) = n(A) + n(B) - n(A \cap B) = 115 - n(A \cap B)$。 $A \cup B \subset U$ なので $n(A \cup B) \leq n(U) = 100$。
$115 - n(A \cap B) \leq 100$ より $n(A \cap B) \geq 15$。 $n(A \cup B) = 100$(全員が $A$ か $B$ の少なくとも一方に属する)のとき等号が成り立つ。 よって最小値は $15$。
200以上400以下の整数のうち、次のような数の個数を求めよ。
(1) 3でも4でも5でも割り切れる数
(2) 3または4または5で割り切れる数
(3) 3または4で割り切れ、かつ5でも割り切れる数
(1) 3個 (2) 121個 (3) 21個
方針:3の倍数の集合を $A$、4の倍数の集合を $B$、5の倍数の集合を $C$ として設定する。
200以上400以下の $k$ の倍数の個数は $\lfloor 400/k \rfloor - \lfloor 199/k \rfloor$ で求まる。
$n(A) = \lfloor 400/3 \rfloor - \lfloor 199/3 \rfloor = 133 - 66 = 67$
$n(B) = \lfloor 400/4 \rfloor - \lfloor 199/4 \rfloor = 100 - 49 = 51$
$n(C) = \lfloor 400/5 \rfloor - \lfloor 199/5 \rfloor = 80 - 39 = 41$
$n(A \cap B) = \lfloor 400/12 \rfloor - \lfloor 199/12 \rfloor = 33 - 16 = 17$($\text{lcm}(3,4) = 12$)
$n(B \cap C) = \lfloor 400/20 \rfloor - \lfloor 199/20 \rfloor = 20 - 9 = 11$($\text{lcm}(4,5) = 20$)
$n(C \cap A) = \lfloor 400/15 \rfloor - \lfloor 199/15 \rfloor = 26 - 13 = 13$($\text{lcm}(5,3) = 15$)
$n(A \cap B \cap C) = \lfloor 400/60 \rfloor - \lfloor 199/60 \rfloor = 6 - 3 = 3$($\text{lcm}(3,4,5) = 60$)
(1) $A \cap B \cap C$(3でも4でも5でも割り切れる = 60の倍数):$n(A \cap B \cap C) = 3$ 個
(2) 包除原理より:
$n(A \cup B \cup C) = 67 + 51 + 41 - 17 - 11 - 13 + 3$
$= 159 - 41 + 3 = 121$ 個。
(3) 「3または4で割り切れ、かつ5でも割り切れる」は $(A \cup B) \cap C$。
$(A \cup B) \cap C = (A \cap C) \cup (B \cap C)$(分配法則)。
$(A \cap C) \cap (B \cap C) = A \cap B \cap C$ なので、
$n((A \cup B) \cap C) = n(A \cap C) + n(B \cap C) - n(A \cap B \cap C) = 13 + 11 - 3 = 21$ 個。