aが3個、bが2個、cが1個の合計6文字を並べる方法は $6! = 720$ 通り...ではありません。
同じ文字がある場合、$\frac{6!}{3!\,2!\,1!} = 60$ 通りに減ります。なぜ割るのか、原理から理解しましょう。
6-2で学んだ順列 $n!$ は、すべてのものが異なることを前提としていました。 しかし、同じものが含まれている場合、全部を区別して並べてしまうと、 見た目が同じ並び方を重複して数えてしまいます。
具体例で考えましょう。a, a, bの3文字を1列に並べるとき、2つのaを $\mathrm{a}_1, \mathrm{a}_2$ と仮に区別すると、 3文字の並べ方は $3! = 6$ 通りです。
しかし、$\mathrm{a}_1\mathrm{a}_2\mathrm{b}$ と $\mathrm{a}_2\mathrm{a}_1\mathrm{b}$ は、区別をなくせばどちらも「aab」です。 同様に、6通りの中で「aの入れ替え $2! = 2$ 通り」ずつが同じ並びに対応しています。 よって、区別なしの並べ方は $\frac{3!}{2!} = 3$ 通り(aab, aba, baa)です。
同じものを含む順列の公式は、次の2ステップで導かれます:
Step 1:仮にすべてを区別して並べる → $n!$ 通り
Step 2:同じものの入れ替えによる重複を消す → $\div p!\,q!\,r!\,\cdots$
$p$ 個の同じものの並べ替えは $p!$ 通りあり、$q$ 個の同じものの並べ替えは $q!$ 通り...と、 各グループの内部の並べ替えは互いに独立なので、割る数はそれらの積になります。
これは6-8で学んだ「名前をつけて数え、名前を外す」テクニックと全く同じ原理です。 組分け問題の $\div k!$ と、同じものを含む順列の $\div p!\,q!\,r!$ は、 「区別をなくすために割る」という共通の考え方に基づいています。
$n$ 個のもののうち、同じものがそれぞれ $p$ 個、$q$ 個、$r$ 個、$\cdots$ あるとき ($p + q + r + \cdots = n$)、これらを全部並べる並べ方の総数は:
$$\frac{n!}{p!\,q!\,r!\,\cdots}$$
考え方1(順列の割り算): $n$ 個すべてを区別して並べると $n!$ 通り。 同じもの $p$ 個の内部の入れ替え $p!$ 通り、$q$ 個の入れ替え $q!$ 通り、...は それぞれ同じ並びを生むので、$\frac{n!}{p!\,q!\,r!\,\cdots}$ 通り。
考え方2(組合せの積): $n$ 個の場所から、まず $p$ 個の場所を選んで同じもの1を置く(${}_n\mathrm{C}_p$ 通り)。 残り $n - p$ 個の場所から $q$ 個を選んで同じもの2を置く(${}_{n-p}\mathrm{C}_q$ 通り)。 以下同様。
$${}_n\mathrm{C}_p \times {}_{n-p}\mathrm{C}_q \times {}_{n-p-q}\mathrm{C}_r \times \cdots = \frac{n!}{p!\,q!\,r!\,\cdots}$$
考え方2は「場所を選ぶ」発想で、6-8の組分けの公式と全く同じ形です。 「$n$ 個の場所を $p$ 個、$q$ 個、$r$ 個のグループに分ける方法」と解釈できます。
同じものを含む順列の公式 $\frac{n!}{p!\,q!\,r!}$ は、多項係数(6-8で学んだ $\frac{n!}{p!\,q!\,r!}$)と全く同じ式です。
✕ 混乱:「組分けの公式」と「同じものの順列の公式」は別物だと思い、使い分けに迷う
○ 理解:同じ式が現れるのは偶然ではない。どちらも「$n$ 個のものを $p, q, r$ 個のグループに分ける」操作。 組分けは「人をグループに分ける」、同じものを含む順列は「場所を文字に割り当てる」と、見方が違うだけで本質は同じ
この対応関係を理解していれば、2つの公式を別々に暗記する必要はありません。
数学IIで学ぶ多項定理によれば、$(a + b + c)^n$ を展開したとき、 $a^p b^q c^r$($p + q + r = n$)の項の係数は $\frac{n!}{p!\,q!\,r!}$ です。
なぜ同じ式が現れるのでしょうか。$(a+b+c)^n = (a+b+c)(a+b+c)\cdots(a+b+c)$ の $n$ 個の因子から、 $a$ を $p$ 回、$b$ を $q$ 回、$c$ を $r$ 回選ぶ方法の数が $\frac{n!}{p!\,q!\,r!}$ だからです。 これはまさに「$n$ 個の場所から $p, q, r$ 個を選ぶ」操作 ── つまり同じものを含む順列の数です。
同じものを含む順列で最も基本的な出題形式は、「与えられた文字を全部使って並べる」問題です。 ここでは具体的な問題を通じて、公式の使い方を確認します。
「SUCCESSの7文字を1列に並べる方法は何通りか。」
まず、各文字の個数を数えます。S が 3個、C が 2個、U が 1個、E が 1個。合計 7文字。
$$\frac{7!}{3!\,2!\,1!\,1!} = \frac{5040}{6 \times 2 \times 1 \times 1} = 420 \text{ 通り}$$✕ 誤:SUCCESSのSは2個 → $\frac{7!}{2!\,2!\,1!\,1!\,1!} = 1260$ 通り
○ 正:SUCCESSのSは3個(先頭S、末尾SS)→ $\frac{7!}{3!\,2!\,1!\,1!} = 420$ 通り
文字の個数は必ず自分で数え直すこと。特に長い単語では、各文字を下に書き出して正の字でカウントするのが確実です。 また、数えた個数の合計が全体の文字数 $n$ と一致するか検算しましょう。 $3 + 2 + 1 + 1 = 7$ ✓
「a, a, a, b, b, c, cの7文字から4文字を取り出して1列に並べる方法は何通りか。」
この問題は、7文字すべてを並べるわけではないので、公式 $\frac{n!}{p!\,q!\,r!}$ を直接は使えません。 取り出す4文字の組合せによって、同じ文字の個数が変わるからです。
同じものを含む $n$ 個から $r$ 個を取り出して並べる場合:
Step 1:取り出す文字の組合せ(各文字の個数)を場合分けする
Step 2:各場合について、同じものを含む順列の公式で並べ方を求める
Step 3:すべての場合の並べ方を足し合わせる
取り出し方の場合分けが鍵です。a, a, a, b, b, c, cから4文字を取る組合せは、 (a, b, cの個数)で $(3,1,0), (3,0,1), (2,2,0), (2,0,2), (2,1,1), (1,2,1), (1,1,2), (0,2,2)$ など。 ただし各文字の上限を超えないものだけ列挙します。
「同じものを含む $n$ 個から $r$ 個取り出して並べる」問題は、高校範囲では場合分けで解きますが、 大学数学の指数型母関数(exponential generating function)を使うと、 場合分けなしに系統的に求められます。
たとえば、aが最大3個、bが最大2個使える場合、 $(1 + x + \frac{x^2}{2!} + \frac{x^3}{3!})(1 + x + \frac{x^2}{2!})$ を展開して、 $\frac{x^r}{r!}$ の係数に $r!$ をかけたものが答えです。 母関数は、場合の数の問題を「多項式の計算」に帰着させる強力な道具です。
同じものを含む順列に追加条件がつくパターンを見ていきましょう。 条件の扱い方は、通常の順列の条件付き問題と基本的に同じです。
「magicianの8文字を並べるとき、2つのaが隣り合う並べ方は何通りか。」
magicianには a が 2個、i が 2個、その他(m, g, c, n)が各1個、合計8文字あります。
2つのaが隣り合うので、aaをひとまとめにして1つの文字「A」と考えます。 すると、A, m, g, i, c, i, n の7文字(iが2個)を並べる問題に帰着します。
$$\frac{7!}{2!} = \frac{5040}{2} = 2520 \text{ 通り}$$隣り合う条件は、通常の順列でも同じものを含む順列でも同じテクニックで処理します: 隣り合わせたいものを1つのブロックにまとめ、全体の個数を1つ減らしてから並べる。
ただし、まとめた後でも同じものが残る場合は $\div$ を忘れないこと。 上の例では、aaをまとめた後もiが2個残るので $\div 2!$ が必要です。
「magicianの8文字を並べるとき、両端が子音であるような並べ方は何通りか。」
子音は m, g, c, n の4文字(すべて異なる)。母音は a, a, i, i の4文字。
まず両端の子音を選んで配置します。左端と右端に置く子音2文字の選び方・並べ方は ${}_4\mathrm{P}_2 = 12$ 通り。
残り6文字(子音2個、母音 a, a, i, i)を真ん中6箇所に並べます。 子音2個は異なるので、同じものは a が2個、i が2個のみ。
$$\frac{6!}{2!\,2!} = \frac{720}{4} = 180 \text{ 通り}$$よって、$12 \times 180 = 2160$ 通り。
上の問題で、両端に子音を置いた後:
✕ 誤:残り6文字を $6!$ で並べる → $12 \times 720 = 8640$ 通り
○ 正:残り6文字中に a が2個、i が2個あるので $\frac{6!}{2!\,2!}$ → $12 \times 180 = 2160$ 通り
条件を処理した後でも、残りの文字に同じものがないかを必ず確認しましょう。
「aが3個、bが2個、cが1個の6文字を並べるとき、2つのbが隣り合わない並べ方は何通りか。」
「隣り合わない」は直接数えるより、余事象(全体 − 隣り合う場合)で求めるのが楽です。
全体:$\frac{6!}{3!\,2!\,1!} = 60$ 通り。
bが隣り合う場合:bbを1つにまとめて B とすると、a, a, a, B, c の5文字(aが3個)を並べる。 $\frac{5!}{3!} = 20$ 通り。
よって、隣り合わない場合 $= 60 - 20 = 40$ 通り。
同じものを含む順列は、一見すると「文字の並べ替え」だけに使う公式に見えますが、 実は最短経路問題や整数の作成問題にも姿を変えて現れます。
碁盤目状の道路で、左下のA地点から右上のB地点まで最短経路で行く方法を考えます。 たとえば、右に5回、上に3回進む場合、最短経路の総数はいくつでしょうか。
最短経路では、必ず「右に5回」と「上に3回」の合計8回の移動をします。 その順番だけが問題です。「右」を $\rightarrow$、「上」を $\uparrow$ と書くと、 たとえば $\rightarrow\rightarrow\uparrow\rightarrow\uparrow\rightarrow\uparrow\rightarrow$ のような列になります。
これはまさに、$\rightarrow$ が5個、$\uparrow$ が3個の同じものを含む順列です。
$$\frac{8!}{5!\,3!} = \frac{40320}{120 \times 6} = 56 \text{ 通り}$$碁盤目状の道路で、右に $m$ 回、上に $n$ 回進む最短経路の総数は:
$$\frac{(m+n)!}{m!\,n!} = {}_{m+n}\mathrm{C}_m = {}_{m+n}\mathrm{C}_n$$
最短経路を「$\rightarrow$ と $\uparrow$ の列」と見れば同じものを含む順列、 「$m+n$ 箇所から $m$ 箇所を選んで $\rightarrow$ を置く」と見れば組合せ。 同じ問題を異なる角度から見ているだけです。
「A地点からB地点へ最短経路で行くとき、途中のP地点を通る経路の数」は、 AからPまでの最短経路 $\times$ PからBまでの最短経路で求まります(積の法則)。
「P地点を通らない経路の数」は、(全体の経路数)−(P地点を通る経路数)で求められます。
✕ 誤:A→P→Bの経路を数えるとき、A→Pで右に行きすぎてPを通り過ぎるルートも含めてしまう
○ 正:「最短経路」とは各方向に必要回数だけ進む経路のこと。A→Pの最短経路は、AからPまでの右・上の回数で自動的に決まる
最短経路の問題では、移動方向は限定されています(右と上のみ)。 「戻る」動きは最短経路には含まれないので、A→Pの経路がPを通り越すことはありません。
「0, 1, 1, 2, 2の5つの数字を使って5桁の整数を作るとき、何通りできるか。」
5桁の整数では、最高位(一番左)に0は置けないことに注意が必要です。
全体から「最高位が0の場合」を引きます。
全体(5文字の並べ方):$\frac{5!}{1!\,2!\,2!} = \frac{120}{4} = 30$ 通り。
最高位が0の場合:残り4文字 1, 1, 2, 2 を並べる → $\frac{4!}{2!\,2!} = 6$ 通り。
よって、$30 - 6 = 24$ 通り。
✕ 誤:0, 1, 1, 2, 2の並べ方は $\frac{5!}{1!\,2!\,2!} = 30$ 通り
○ 正:30通りには 01122, 01212 など最高位が0の並び(整数として不適)が含まれる。 これらを引いて $30 - 6 = 24$ 通り
数字に0が含まれている場合は必ず「最高位が0」のケースを除外しましょう。 このチェックは整数の作成問題での鉄則です。
最短経路の数 $\frac{(m+n)!}{m!\,n!} = {}_{m+n}\mathrm{C}_n$ は二項係数そのものです。 碁盤目の各交差点に「そこに至る最短経路の数」を書き込んでいくと、 パスカルの三角形が現れます。
各交差点の値は「左の値 + 下の値」で求められます(「右から来るルート + 下から来るルート」)。 これがパスカルの三角形の漸化式 ${}_{n}\mathrm{C}_r = {}_{n-1}\mathrm{C}_{r-1} + {}_{n-1}\mathrm{C}_r$ の 組合せ的な意味です。
同じものを含む順列の公式 $\frac{n!}{p!\,q!\,r!}$ は、多くの問題に共通して現れる万能な式です。 ここで全体を俯瞰しましょう。
| 問題の種類 | 具体例 | $n, p, q, r$ の意味 |
|---|---|---|
| 同じものを含む順列 | a, a, a, b, b を並べる | $n$=文字総数、$p,q$=各文字の個数 |
| 組分け(区別あり) | 9人をA(3), B(3), C(3)に分ける | $n$=人数、$p,q,r$=各組の人数 |
| 最短経路 | 右5回、上3回の経路 | $n$=移動回数、$p$=右の回数、$q$=上の回数 |
| 多項定理の係数 | $(a+b+c)^n$ の $a^p b^q c^r$ の係数 | $n$=展開の次数、$p,q,r$=各変数の指数 |
Q1. a, a, b, b, b, c の6文字を1列に並べる方法は何通りですか?
Q2. 同じものを含む順列の公式で、なぜ分母に $p!\,q!\,r!$ がつくのですか?
Q3. 碁盤目の道路で、右に4回、上に3回進む最短経路は何通りですか?
Q4. 0, 0, 1, 2, 3 の5つの数字で5桁の整数は何通りできますか?
Q5. 同じものを含む順列の公式 $\frac{n!}{p!\,q!\,r!}$ と、6-8の組分けの公式は同じ形です。なぜですか?
この記事で学んだ内容を、入試形式の問題で確認しましょう。
MISSISSIPPIの11文字を1列に並べる方法は何通りか。
$34650$ 通り
方針:各文字の個数を正確に数え、同じものを含む順列の公式を適用する。
M: 1個、I: 4個、S: 4個、P: 2個。合計 $1 + 4 + 4 + 2 = 11$ ✓
$$\frac{11!}{1!\,4!\,4!\,2!} = \frac{39916800}{1 \times 24 \times 24 \times 2} = \frac{39916800}{1152} = 34650 \text{ 通り}$$
下図のような碁盤目状の道路がある。A地点からB地点まで最短経路で行くとき、次の問いに答えよ。 ただし、Aから右に5区画、上に4区画の位置にBがある。
(1) 最短経路の総数を求めよ。
(2) Aから右に2区画、上に2区画の地点Pを通る最短経路の数を求めよ。
(3) 地点Pを通らない最短経路の数を求めよ。
(1) $126$ 通り (2) $60$ 通り (3) $66$ 通り
方針:最短経路 = $\rightarrow$ と $\uparrow$ の同じものを含む順列。通過条件は積の法則。
(1) $\rightarrow$ 5個、$\uparrow$ 4個の並べ方:$\frac{9!}{5!\,4!} = {}_{9}\mathrm{C}_4 = 126$ 通り
(2) A→P:右2、上2 → $\frac{4!}{2!\,2!} = 6$ 通り。 P→B:右3、上2 → $\frac{5!}{3!\,2!} = 10$ 通り。 積の法則:$6 \times 10 = 60$ 通り
(3) $126 - 60 = 66$ 通り
0, 1, 1, 2, 2, 3 の6つの数字を全部使って6桁の整数を作るとき、次の問いに答えよ。
(1) 6桁の整数は何通りできるか。
(2) 偶数は何通りできるか。
(1) $150$ 通り (2) $78$ 通り
方針:(1)は全体から最高位0を引く。(2)は末尾の数字で場合分け。
(1) 6文字 $\{0, 1, 1, 2, 2, 3\}$ の並べ方(0が1個、1が2個、2が2個、3が1個):
全体:$\frac{6!}{1!\,2!\,2!\,1!} = \frac{720}{4} = 180$ 通り
最高位が0のとき、残り $\{1, 1, 2, 2, 3\}$ の並べ方:$\frac{5!}{2!\,2!} = 30$ 通り
答え:$180 - 30 = 150$ 通り
(2) 偶数 → 末尾が 0 または 2。
[末尾が0の場合] 残り $\{1, 1, 2, 2, 3\}$ を先頭5桁に並べる。0は使用済みなので最高位の問題なし。
$\frac{5!}{2!\,2!} = 30$ 通り
[末尾が2の場合] 2を1つ末尾に使い、残り $\{0, 1, 1, 2, 3\}$ を先頭5桁に並べる(同じものは1が2個のみ)。
全体:$\frac{5!}{2!} = 60$ 通り。 最高位が0の場合:残り $\{1, 1, 2, 3\}$ → $\frac{4!}{2!} = 12$ 通り。 よって $60 - 12 = 48$ 通り。
※ 元の数字に2は2個ありますが、同じ数字なので「どちらの2を末尾に使うか」は区別しません。 残りの構成はどちらを使っても $\{0, 1, 1, 2, 3\}$ で同じです。
答え:$30 + 48 = 78$ 通り
赤玉4個、白玉3個、青玉1個の合計8個を円形に並べる方法は何通りか。
$35$ 通り
方針:同じものを含む円順列。1個しかないものを固定して、残りを直線上で並べる。
円順列では回転で同じになるものを1つと数えます。 すべて異なるなら $(n-1)!$ ですが、同じものを含む場合はこの公式は使えません。
そこで、1個しかない青玉を固定します。青玉の位置を決めれば、回転の自由度がなくなります。
青玉を固定した後、残り7つの場所に赤玉4個と白玉3個を並べます。
$$\frac{7!}{4!\,3!} = {}_{7}\mathrm{C}_3 = 35 \text{ 通り}$$
注意:すべて異なる $n$ 個の円順列は $(n-1)!$ ですが、同じものを含む場合は単純に $(n-1)!$ を割るだけでは求められません。 「1つ固定して残りを直線順列」が確実な方法です。