MathLabs

10年生

数え上げの原理

場合の数を数えるための加法の法則と乗法の法則。組合せ論の基礎となる考え方。

直観直感:選択と枝分かれする道すじ

服を選ぶ場面を想像してほしい。まず何色かのシャツから1枚、次に何サイズかのズボンから1本を選ぶ。すべての組み合わせを木として描くと——シャツごとに枝分かれし、各シャツの枝からさらにズボンのサイズごとに小枝が伸びる——組み合わせはその木の葉そのものになる。数え上げの原理を使えば、木を全部描かなくても葉の数を数えられる。作業が互いに重ならない場合分けに分かれるときは足し算、独立した手順の並びとしてすべてを行う必要があるときは掛け算を使う。

シャツの色の枝がさらにズボンのサイズの枝に分かれる様子を示す樹形図。
選択を枝分かれさせた木:シャツの色を選び、次にズボンのサイズを選ぶ。根から葉までの各経路が1つの組み合わせなので、葉の数はシャツの色数とズボンのサイズ数の積に等しい。

中高加法の法則と乗法の法則

定義: 加法の法則(和の法則)

ある作業が互いに排反な kk 通りの方法のうちちょうど1つで完了できて、方法 nin_i には nin_i 通りの結果があり、2つの方法に同時に属す結果がないならば、結果の総数は n1+n2+⋯+nkn_1+n_2+\cdots+n_k である。

∣A1∪A2∪⋯∪Ak∣=∣A1∣+∣A2∣+⋯+∣Ak∣|A_1 \cup A_2 \cup \cdots \cup A_k| = |A_1| + |A_2| + \cdots + |A_k|

A1A_1、A2A_2、…\dots、AkA_k は互いに素な結果の集合である。各結果はそのうちのちょうど1つに属するので、すべての結果を1回ずつ数えることは、各集合を別々に数えて足し合わせることと同じになる。

N=n1⋅n2⋯nkN = n_1 \cdot n_2 \cdots n_k

一方、作業が kk 個の独立した連続する手順から成り、手順 nin_i がそれ以前の選択に関係なく nin_i 通りで行えるならば、作業全体を完了する方法の総数は積 N=n1⋅n2⋯nkN = n_1 \cdot n_2 \cdots n_k である。

足すべきとき・掛けるべきとき
法則適用される場面公式
加法の法則kk 通りの互いに排反な場合のうちちょうど1つで作業が完了するn1+n2+⋯+nkn_1+n_2+\cdots+n_k
乗法の法則kk 個の独立した手順の並びで、すべてが実行されなければならないn1⋅n2⋯nkn_1 \cdot n_2 \cdots n_k

大学厳密な主張と証明

A1A_1、A2A_2、…\dots、AkA_k を、i≠ji \neq j のとき常に Ai∩Aj=∅A_i \cap A_j = \emptyset を満たす互いに素な有限集合とする。このとき ∣A1∪A2∪⋯∪Ak∣=∣A1∣+∣A2∣+⋯+∣Ak∣|A_1 \cup A_2 \cup \cdots \cup A_k| = |A_1| + |A_2| + \cdots + |A_k| が成り立つ。

なぜ正しいのか?

これは、互いに重ならない各場合を別々に数えて足すという日常の直感を厳密にしたものである。素であることが、どの結果も二重に数えられないことを保証するからこそ成り立つ。

証明

第1段階(基本ケース k=2k=2):A1A_1 と A2A_2 が素であるとする、つまり A1∩A2=∅A_1 \cap A_2 = \emptyset。A1∪A2A_1 \cup A_2 の各要素は A1A_1 か A2A_2 のいずれかに属し、素であることから両方に属することはない。A1∪A2A_1 \cup A_2 を素な2つの部分 A1A_1 と A2A_2 に分けてそれぞれを1回数えると ∣A1∪A2∣=∣A1∣+∣A2∣|A_1 \cup A_2| = |A_1| + |A_2| が得られる。

第2段階(kk に関する帰納法):任意の k−1k-1 個の互いに素な集合について公式がすでに成り立つ、すなわち ∣A1∪⋯∪Ak−1∣=∣A1∣+⋯+∣Ak−1∣|A_1 \cup \cdots \cup A_{k-1}| = |A_1| + \cdots + |A_{k-1}| と仮定する。B=A1∪⋯∪Ak−1B = A_1 \cup \cdots \cup A_{k-1} とおく。AkA_k は i<ki < k を満たすすべての AiA_i と素なので、それらの和集合 BB とも素である。基本ケースを BB と AkA_k に適用すると ∣B∪Ak∣=∣B∣+∣Ak∣|B \cup A_k| = |B| + |A_k| が得られる。

第3段階(結合):この等式に帰納法の仮定 ∣B∣|B| を代入すると ∣A1∪⋯∪Ak∣=∣A1∣+⋯+∣Ak−1∣+∣Ak∣|A_1 \cup \cdots \cup A_k| = |A_1| + \cdots + |A_{k-1}| + |A_k| が得られ、これはまさに kk 個の集合に対する加法の法則である。基本ケース k=2k=2 が成り立ち、k−1k-1 から kk への各段階で公式が保たれるので、帰納法によりすべての k≥2k \geq 2 で成り立つ。

ある作業が kk 個の連続する手順 T1,T2,…,TkT_1, T_2, \dots, T_k から成り、手順 nin_i はそれ以前にどんな選択がなされたかに関係なく nin_i 通りで実行できるとする。このとき、この一連の手順全体を実行する方法の総数は N=n1⋅n2⋯nkN = n_1 \cdot n_2 \cdots n_k である。

なぜ正しいのか?

各手順の選択肢の数が前の手順に依存しないため、選択の組み合わせはすべて異なる正当な結果となり、その組み合わせ数はちょうど長方形の格子のマス目を数えるのと同じように積になる。

証明

第1段階(基本ケース k=1k=1):手順が1つだけならば明らかに N1=n1N_1 = n_1 通りであり、k=1k=1 のときの公式と一致する。

第2段階(基本ケース k=2k=2):手順1を行う n1n_1 通りの方法それぞれについて、手順2はその結果に関係なくやはり n2n_2 通りで行える。これにより、選択のすべての組は手順1の各結果に対応する n1n_1 個の素な、大きさ n2n_2 のグループに分かれるので、加法の法則により合計は n2n_2 を n1n_1 回足したもの、すなわち N2=n1⋅n2N_2 = n_1 \cdot n_2 となる。

第3段階(kk に関する帰納法):公式が k−1k-1 個の手順について成り立つと仮定すると、最初の k−1k-1 個の手順全体で Nk−1N_{k-1} 通りの結果がある。この k−1k-1 個の手順を Nk−1N_{k-1} 通りの結果を持つ1つの「合成手順」とみなし、手順 kk を nkn_k 通りの結果を持つ独立した2番目の手順とみなす(その数は前の選択に依存しない)。この2手順に基本ケースを適用すると Nk=Nk−1⋅nkN_k = N_{k-1} \cdot n_k、すなわち Nk=n1⋅n2⋯nkN_k = n_1 \cdot n_2 \cdots n_k が得られる。帰納法によりこの公式はすべての kk で成り立つ。

大学実世界での応用と具体例

数え上げの原理は、計算機科学者がパスワードやIPアドレス、テストケースの数を見積もるとき、暗号研究者が鍵空間の大きさを求めるとき、統計学者が確率を割り当てる前に標本空間を数えるとき、真っ先に使われる道具である。以下の2つの例は、乗法の法則をナンバープレートとパスワードにそのまま適用する。

例: ナンバープレートの数を数える

あるナンバープレートは、大文字2文字(A–Z)の後に数字5桁(0–9)が続く形式であり、文字も数字も繰り返し使ってよい。異なるナンバープレートは何通りあるか。

解答

第1段階:プレートを7つの独立した位置に分ける:文字の位置2つと数字の位置5つで、順に埋めていく。

第2段階:各文字の位置には(繰り返しを許して)2626 通りの選択肢があるので、乗法の法則により文字2つの位置で 26⋅26=26226 \cdot 26 = 26^2 通りとなる。

第3段階:各数字の位置は他と独立に 1010 通りの選択肢を持つので、数字5つの位置で 10510^5 通りとなる。

第4段階:7つの位置すべてが独立に順番に埋められるので、プレート全体にもう一度乗法の法則を適用すると、プレートの総数は =262⋅105=67,600,000= 26^2 \cdot 10^5 = 67{,}600{,}000

例: 混合文字集におけるパスワードの数え上げ

あるウェブサイトでは、ちょうど4文字のパスワードが必要で、各文字は小文字のアルファベット(26通り)か数字(10通り)のいずれかであり、繰り返しが許される。異なるパスワードは何通りあるか。

解答

第1段階:1文字については、まず加法の法則を適用する。文字は小文字かつ数字のどちらか一方であって両方ではないので、1文字あたりの選択肢数は 26+10=3626 + 10 = 36 である。

第2段階:この1文字あたりの選択肢数は他の位置でどの文字が選ばれたかに依存しないので、4つの位置は乗法の法則の意味で独立した連続する手順となる。

第3段階:4つの位置に乗法の法則を適用すると、パスワードの総数は 36436^4 となる。

第4段階:計算すると、異なるパスワードは 364=1,679,61636^4 = 1{,}679{,}616 通りである。

あるクラスには男子15人、女子12人がいる。どの生徒も選べるとき、クラスの代表を1人選ぶ方法は何通りあるか。

あるセットメニューでは3種類のスープから1つ、独立に4種類のメイン料理から1つを選ぶ。客はスープとメインをちょうど1つずつ選ばなければならない。異なる食事の組み合わせは何通りあるか。

大文字2文字(A–Z)の後に数字3桁(0–9)が続く形式のナンバープレートは、文字や数字の繰り返しを許すとき何通りあるか。

あるパスワードは、4文字の小文字(各位置26通り)であるか、4桁の数字(各位置10通り)であるかのいずれかでなければならず、同じパスワードの中で2種類を混ぜることはない。異なるパスワードは何通りあるか。

参考文献

  1. Richard A. Brualdi (2009). Introductory Combinatorics
  2. Kenneth H. Rosen (2019). Discrete Mathematics and Its Applications