「5人から3人を選んで1列に並べる方法は何通りか?」── この問いに答える道具が順列です。
公式 $_nP_r$ を暗記するのではなく、なぜ「かけ算」で数えられるのかを理解すれば、どんな応用問題にも対応できます。
6-2で学んだ積の法則を思い出しましょう。 「1つ目の選択が $a$ 通り、2つ目の選択が $b$ 通りなら、合わせて $a \times b$ 通り」でした。 順列の公式は、この積の法則をそのまま適用したものです。
順列(permutation)とは、いくつかのものを順序をつけて1列に並べる配列のことです。 異なる $n$ 個のものから $r$ 個を取り出して1列に並べる方法の総数を、$_nP_r$ と書きます。
たとえば、A, B, C, D, E の5人から3人を選んで1列に並べるとき、どう数えるでしょうか。
積の法則により、$_5P_3 = 5 \times 4 \times 3 = 60$ 通りです。 1つ選ぶたびに「残りの候補が1つずつ減っていく」のがポイントです。
順列の公式 $_nP_r = n(n-1)(n-2)\cdots(n-r+1)$ は、積の法則の直接的な適用です。
$r$ 個を並べるとき、1番目の選択肢は $n$ 通り、2番目は $n-1$ 通り、......、$r$ 番目は $n-r+1$ 通り。 これらをすべてかけ合わせたのが $_nP_r$ です。
つまり、$_nP_r$ は「$n$ から始まって1ずつ小さくなる $r$ 個の自然数の積」にほかなりません。 この原理さえ理解していれば、公式を忘れても自分で導けます。
$n$ 個から $r$ 個取る順列の総数:
$$_nP_r = n(n-1)(n-2)\cdots(n-r+1) = \frac{n!}{(n-r)!}$$特に $r = n$ のとき(全部並べる場合):
$$_nP_n = n! = n(n-1)(n-2)\cdots 3 \cdot 2 \cdot 1$$$_nP_r = n(n-1)(n-2)\cdots(n-r+1)$ は $r$ 個の数の積で、最後の因数は $n - r + 1$ です。
一方 $n!$ を考えると:
$$n! = \underbrace{n(n-1)(n-2)\cdots(n-r+1)}_{\text{ここまでが } _nP_r} \times \underbrace{(n-r)(n-r-1)\cdots 2 \cdot 1}_{\text{これが } (n-r)!}$$つまり $n! = {_nP_r} \times (n-r)!$ です。両辺を $(n-r)!$ で割ると:
$$_nP_r = \frac{n!}{(n-r)!}$$この式は「$n!$ の中から不要な後半部分 $(n-r)!$ を割り落とした」と読めます。 $n$ 個すべてを並べる $n!$ 通りから、最初の $r$ 番目までの並び方だけを取り出したのが $_nP_r$ です。
✕ 誤:$_5P_3 = 5 \times 4 \times 3 \times 2 = 120$(4つかけてしまう)
○ 正:$_5P_3 = 5 \times 4 \times 3 = 60$(3つかける。$r = 3$ 個の積)
$_nP_r$ は「$n$ から始めて $r$ 個 かける」です。$_5P_3$ なら $5$ から始めて $3$ 個。 最後の因数は $n - r + 1 = 5 - 3 + 1 = 3$ です。 かける個数が $r$ 個であることを必ず確認しましょう。
3個の文字 $\{a, b, c\}$ から2個を取って並べる順列を考えます。 1番目に $a$ を選べば、2番目は $b$ か $c$ で $(a, b)$ と $(a, c)$。 1番目に $b$ を選べば $(b, a)$ と $(b, c)$。 1番目に $c$ を選べば $(c, a)$ と $(c, b)$。 全部で $3 \times 2 = 6$ 通り。
樹形図の各分岐で選択肢が1つずつ減っていく構造が、まさに $_nP_r$ の「連続するかけ算」に対応しています。 $_nP_r$ は樹形図の末端(枝先)の数を表す記号だと考えるとわかりやすいでしょう。
大学数学では、$n$ 個のものをすべて並べ替える操作を置換(permutation)と呼びます。 たとえば $(1, 2, 3)$ を $(2, 3, 1)$ に並べ替える操作は1つの「置換」です。
$n$ 個の置換全体が作る集合を$n$ 次対称群 $S_n$と呼び、その要素の個数は $|S_n| = n!$ です。 対称群は「群論」という代数学の基本構造で、物理学の結晶構造の対称性の分類や、暗号理論にも使われます。 高校で学ぶ $_nP_n = n!$ は、この対称群の入口に立っているのです。
$n$ 個のものをすべて1列に並べる方法の総数 $_nP_n$ は、$n$ から $1$ まで順にかけ合わせた値になります。 この値を$n$ の階乗($n$ factorial)と呼び、$n!$ と書きます。
$$n! = n \times (n-1) \times (n-2) \times \cdots \times 3 \times 2 \times 1$$具体的な値を確認しておきましょう。
| $n$ | $n!$ の値 | 計算 |
|---|---|---|
| $1$ | $1$ | $1$ |
| $2$ | $2$ | $2 \times 1$ |
| $3$ | $6$ | $3 \times 2 \times 1$ |
| $4$ | $24$ | $4 \times 3 \times 2 \times 1$ |
| $5$ | $120$ | $5 \times 4 \times 3 \times 2 \times 1$ |
| $6$ | $720$ | $6 \times 5 \times 4 \times 3 \times 2 \times 1$ |
$5! = 120$ までの値はよく使うので覚えておくと便利です。 また、$n! = n \times (n-1)!$ という再帰的な関係が成り立ちます。 たとえば $5! = 5 \times 4!$、$4! = 4 \times 3!$ です。
$0! = 1$ と定めるのは奇妙に見えるかもしれません。しかし、2つの理由から自然です。
理由1:公式の整合性。 $_nP_r = \dfrac{n!}{(n-r)!}$ で $r = n$ とすると $_nP_n = \dfrac{n!}{0!}$。 $_nP_n = n!$ であるためには $0! = 1$ でなければなりません。
理由2:再帰関係。 $n! = n \times (n-1)!$ で $n = 1$ とすると $1! = 1 \times 0!$。 $1! = 1$ なので $0! = 1$ が必要です。
直感的理解:「0個のものを並べる方法は何もしないの1通り」と考えれば自然です。
✕ 誤:$0! = 0$(「何もないのだから0」と直感で考えてしまう)
○ 正:$0! = 1$
$0! = 0$ だと $_nP_n = \dfrac{n!}{0!} = \dfrac{n!}{0}$ で「0で割る」ことになり、計算が破綻します。 $0! = 1$ は必ず覚えましょう。
$_nP_r = n(n-1)\cdots(n-r+1)$ と $_nP_r = \dfrac{n!}{(n-r)!}$ は同じものを表す2つの書き方です。 実際の数値計算では「$n$ から $r$ 個かける」前者が速く、式変形では後者が便利です。
たとえば組合せの公式 $_nC_r = \dfrac{_nP_r}{r!}$ を導くとき、 $_nP_r = \dfrac{n!}{(n-r)!}$ を代入すれば $_nC_r = \dfrac{n!}{r!(n-r)!}$ がすっきり出てきます。 「計算には展開形、式変形には階乗形」と使い分けましょう。
✕ 非効率:$_7P_3 = \dfrac{7!}{4!} = \dfrac{5040}{24} = 210$(両方計算する手間)
○ 効率的:$_7P_3 = 7 \times 6 \times 5 = 210$(3個かけるだけ)
数値を求めるだけなら、$n$ から1ずつ下がる $r$ 個をかければ一発です。 階乗の形 $\dfrac{n!}{(n-r)!}$ は、式変形のときにとっておきましょう。
階乗 $n!$ は自然数 $n$ に対してのみ定義されますが、大学数学ではガンマ関数 $\Gamma(s) = \int_0^\infty t^{s-1} e^{-t}\, dt$ を使って、実数(さらには複素数)に拡張されます。
自然数 $n$ に対して $\Gamma(n+1) = n!$ が成り立ちます。 たとえば $\Gamma(1) = 0! = 1$ です。 さらに $\Gamma\!\left(\dfrac{1}{2}\right) = \sqrt{\pi}$ なので、 いわば「$\left(-\dfrac{1}{2}\right)! = \sqrt{\pi}$」のように、 整数でない値の「階乗」も定義できるのです。
順列の問題には、「先頭に0を置けない」「一の位が偶数」「両端が指定されている」など、 条件(制約)がつくことが多くあります。 こうした条件付き順列を解く鍵は1つです。
条件付き順列では、「自由度の少ない(制約が厳しい)ものから先に配置する」のが鉄則です。
たとえば「0, 1, 2, 3, 4 から3桁の整数を作る」とき、百の位には $0$ を置けません。 百の位の選択肢は4通りしかないのに、十の位や一の位はもっと自由。 こういうとき、制約の厳しい百の位から先に決めます。
先に自由度の高いものを決めてしまうと、あとから場合分けが複雑になります。 制約の厳しいものから攻めれば、シンプルに解けます。
0, 1, 2, 3, 4, 5 の6個の数字から異なる4個を取って4桁の整数を作ります。何個の整数ができるでしょうか。
Step 1:制約の確認。4桁の整数なので千の位は $0$ 以外。
Step 2:千の位を先に決める。1, 2, 3, 4, 5 の 5通り。
Step 3:残りの3桁は、千の位で使った数字以外の5個から3個を並べる。 $_5P_3 = 5 \times 4 \times 3 = 60$ 通り。
結論:$5 \times {_5P_3} = 5 \times 60 = 300$ 個
✕ 誤:$_6P_4 = 6 \times 5 \times 4 \times 3 = 360$ 個
○ 正:$5 \times {_5P_3} = 300$ 個
$_6P_4 = 360$ には「千の位が $0$」のもの、つまり実際には3桁以下の整数が含まれています。 千の位が $0$ のものは $_5P_3 = 60$ 個なので、$360 - 60 = 300$ でも同じ答えが出ます。 「0を含む数字の順列」では千の位の制約を忘れずに。
1, 2, 3, 4, 5, 6 の6個の数字から異なる3個を取って3桁の偶数を作ると何個できるでしょうか。
偶数の条件は「一の位が偶数」です。一の位が 2, 4, 6 のいずれかに限定されるので、 一の位から先に決めます。
よって $3 \times 20 = 60$ 個です。 0を含まないので、百の位の制約がなくシンプルに解けます。
条件付き順列の多くは、次の2ステップで解けます。
Step 1:条件に関わる部分を先に決める(固定する)
Step 2:残りを通常の順列で数える
この「固定 → 残り」は、両端の指定、特定の位置の指定、 倍数条件など、あらゆる条件付き順列で使える万能パターンです。 「0を含む偶数」のように制約が2つある場合は、最も厳しい制約から順に固定していきます。
「制約の厳しいものから先に決める」は順列に限った話ではありません。 コンピュータサイエンスの制約充足問題(CSP: Constraint Satisfaction Problem)でも、 「最も制約の多い変数から値を決める」ヒューリスティクスが使われます。
数独やスケジューリング問題を解くアルゴリズムも、実は同じ原理に基づいています。 高校の条件付き順列は、「制約を効率的に処理する」思考法の入口です。
「AとBが隣り合うように並べる」「男子が隣り合わないように並べる」── これらは順列の中でも最も出題頻度が高いパターンです。 それぞれに明確な定石があります。
「隣り合う」条件がついたら、隣り合うものをひとまとまりのセットにして1つとみなし、 全体の順列を求めます。そのあとで、セットの中の並び順をかけます。
A, B, C, D, E の5人が1列に並ぶとき、AとBが隣り合う並び方は何通りでしょうか。
Step 1:AとBを1つのセット [AB] とみなす。 すると [AB], C, D, E の 4つ を並べると考えられます。
Step 2:4つの並び方は $4! = 24$ 通り。
Step 3:セット [AB] の中でAとBの順番は AB か BA の $2! = 2$ 通り。
結論:$4! \times 2! = 24 \times 2 = 48$ 通り
なぜこの方法でうまくいくのか。 AとBを [AB] というセットにまとめることで、「AとBは必ず隣り合う」という条件が構造的に保証されます。 セットの中の並び順は全体の配置と独立なので、積の法則で合わせられるのです。
この手法は3人以上にも同じように使えます。 たとえば「A, B, Cの3人が隣り合う」なら、[ABC] を1つとみなして全体を並べたあと、 セット内の $3! = 6$ 通りをかけます。
✕ 誤:AとBを1セットにして4つを並べるから $4! = 24$ 通り
○ 正:$4! \times 2! = 48$ 通り。セットの中でAとBの順番が入れ替わります
セットを1つとみなしたあと、セットの中の並び順をかけるのを忘れないでください。 $k$ 人が隣り合うなら、セット内の並び方 $k!$ を必ずかけます。
「隣り合わない」は、「隣り合う」とは全く異なるアプローチで解きます。 まず隣り合わないもの以外を先に並べ、そのあとにできた隙間(間と両端)に1つずつ入れます。
大人4人と子ども3人が1列に並ぶとき、子どもどうしが隣り合わない並び方は何通りでしょうか。
Step 1:まず大人4人を1列に並べる。$4! = 24$ 通り。
Step 2:大人4人の間と両端に「隙間」が生まれます。
○大○大○大○大○
隙間は 5か所 です(大人 $n$ 人のとき $n+1$ か所)。
Step 3:5か所から3か所を選んで子ども3人を1人ずつ入れる。 $_5P_3 = 5 \times 4 \times 3 = 60$ 通り。
結論:$4! \times {_5P_3} = 24 \times 60 = 1440$ 通り
この方法がうまくいく理由は明快です。 子どもを「大人と大人の隙間」にしか入れないので、子どもと子どもの間には必ず少なくとも1人の大人がいます。 つまり、子どもどうしが隣り合わないことが構造的に保証されるのです。
「隣り合う」→ セット化:隣り合うものを1つにまとめて全体を並べ、セット内の順列をかける
「隣り合わない」→ 間に入れる:他のものを先に並べ、隙間に1つずつ入れる
「隣り合う」はくっつけて1つにする。「隣り合わない」は離してから入れる。 まさに対照的な手法です。問題文の「隣り合う」「続いて並ぶ」「交互に並ぶ」「隣り合わない」を見たら、 まずこの2つの定石のどちらを使うか判断しましょう。
補集合の考え方(全体から隣り合う場合を引く)も使えますが、3人以上の場合は注意が必要です。
✕ 危険:「子ども3人のうち少なくとも2人が隣り合う」場合を引こうとすると、 重複の処理(包除原理)が複雑になる
○ 安全:「先に他を並べて間に入れる」定石なら、直接的にシンプルに求められる
「隣り合わない」は補集合ではなく「間に入れる」定石で直接求めるのが原則です。
「大人と子どもが交互に並ぶ」は「隣り合わない」の特殊ケースです。 大人4人と子ども3人で交互に並べるには、人数が多い大人が奇数番目に来る 「大子大子大子大」の配置しかありません。
大人4人の並び方 $4! = 24$ 通り、子ども3人の並び方 $3! = 6$ 通り。 合わせて $4! \times 3! = 144$ 通りです。
大人と子どもが同数(たとえば各4人)なら「大子大子大子大子」と「子大子大子大子大」の2通りの配置があるので、 $2 \times 4! \times 4!$ 通りとなります。
順列の発展的な話題として完全順列(derangement)があります。 $n$ 人がプレゼント交換をするとき、「誰も自分のプレゼントを受け取らない」方法は何通りあるか、という問題です。
$n$ 個の完全順列の数 $D_n$ は包除原理で求められます:
$$D_n = n! \sum_{k=0}^{n} \frac{(-1)^k}{k!}$$
$n$ が大きくなると $\dfrac{D_n}{n!} \to \dfrac{1}{e} \approx 0.368$ に近づきます。 つまり約37%の確率で完全順列になるという結果は、人数にほぼよらない。 場合の数に自然対数の底 $e$ が現れるのは印象的です。
ここまで学んだ内容を整理し、順列問題の全体像を把握しましょう。
| パターン | 問題の特徴 | 解法のポイント |
|---|---|---|
| A:基本順列 | $n$ 個から $r$ 個取って並べる | $_nP_r$ を直接計算 |
| B:全順列 | $n$ 個すべてを並べる | $n!$ を計算 |
| C:0を含む数字 | 先頭が $0$ になれない | 先頭から先に決める |
| D:倍数条件 | 偶数、3の倍数、5の倍数など | 条件に関わる位から先に決める |
| E:隣り合う | 特定の人・ものが隣り合う | セット化 → 全体を並べる → セット内をかける |
| F:隣り合わない | 特定の人・ものが隣り合わない | 他を先に並べ、間・両端の隙間に入れる |
| G:両端指定 | 両端に特定のものを配置 | 両端を先に決め、残りを並べる |
どのパターンでも根底にある考え方は共通です。 「制約の厳しいところから先に決め、残りを順列で数え、積の法則で合わせる」。 この原則を理解していれば、見たことのない問題にも対処できます。
Q1. $_7P_3$ の値を求めてください。
Q2. $0!$ の値と、そう定める理由を説明してください。
Q3. 1, 2, 3, 4, 5 の5つの数字から異なる3つを使って3桁の奇数を作ると何個できますか。
Q4. 「隣り合う」問題を解く定石を一言で説明してください。
Q5. A, B, C, D の4人が1列に並ぶとき、AとBが隣り合わない並び方は何通りですか。
この記事で学んだ内容を、入試形式の問題で確認しましょう。
0, 1, 2, 3, 4 の5個の数字から異なる3個を取って3桁の整数を作る。
(1) 3桁の整数は全部で何個できるか。
(2) 偶数は何個できるか。
(1) 48個 (2) 30個
方針:0を含む数字の順列。制約の厳しい位から先に決める。
(1) 百の位は $0$ 以外の4通り。残り4個から2個を並べる:$_4P_2 = 12$ 通り。 $4 \times 12 = 48$ 個。
(2) 偶数 → 一の位が偶数(0, 2, 4)。百の位にも $0$ を置けない制約があるので場合分け。
一の位が $0$ のとき:百の位は残り4個から1つで4通り、十の位は残り3個から1つで3通り。$4 \times 3 = 12$ 個。
一の位が $2$ または $4$ のとき:一の位は2通り。百の位は $0$ と一の位の数を除く3通り。十の位は残り3個から1つで3通り。$2 \times 3 \times 3 = 18$ 個。
合計 $12 + 18 = 30$ 個。
検算:奇数(一の位1 or 3)は $2 \times 3 \times 3 = 18$ 個。$48 - 18 = 30$ 個。一致。
男子3人と女子4人の7人が1列に並ぶとき、次の並び方は何通りあるか。
(1) 男子3人が隣り合う並び方
(2) 男子どうしが隣り合わない並び方
(1) 720通り (2) 1440通り
(1) 「隣り合う」→ セット化
男子3人を1つのセットとみなし、セット+女子4人 = 5つを並べる。$5! = 120$ 通り。
セット内の男子3人の並び方:$3! = 6$ 通り。
よって $5! \times 3! = 120 \times 6 = 720$ 通り。
(2) 「隣り合わない」→ 間に入れる
女子4人を先に並べる:$4! = 24$ 通り。
女子4人の間と両端にできる隙間:○女○女○女○女○ の5か所。
5か所から3か所を選んで男子3人を入れる:$_5P_3 = 60$ 通り。
よって $4! \times {_5P_3} = 24 \times 60 = 1440$ 通り。
1, 2, 3, 4, 5, 6 の6個の数字から異なる3個を取って3桁の整数を作るとき、次の問いに答えよ。
(1) 3桁の整数は全部で何個できるか。
(2) 偶数は何個できるか。
(3) 4の倍数は何個できるか。
(1) 120個 (2) 60個 (3) 32個
(1) 0を含まないので単純。$_6P_3 = 6 \times 5 \times 4 = 120$ 個。
(2) 一の位が偶数(2, 4, 6)の3通り。残り5個から2個を並べる:$_5P_2 = 20$ 通り。 $3 \times 20 = 60$ 個。
(3) 4の倍数 → 下2桁が4の倍数。1〜6の異なる2個でできる2桁の4の倍数を列挙する。
12, 16, 24, 32, 36, 52, 56, 64 の 8通り。
各場合について百の位は残り4個から1個で4通り。$8 \times 4 = 32$ 個。
A, B, C, D, E, F, G の7人が1列に並ぶ。次の問いに答えよ。
(1) AとBが隣り合う並び方は何通りか。
(2) AとBが両端にくる並び方は何通りか。
(3) どの男子(A, B, C)も隣り合わない並び方は何通りか。ただし D, E, F, G は女子とする。
(1) 1440通り (2) 240通り (3) 1440通り
(1) セット化
AとBを1つのセットとみなし、セット+C, D, E, F, G = 6つを並べる。$6! = 720$ 通り。 セット内 $2! = 2$ 通り。$720 \times 2 = 1440$ 通り。
(2) 両端指定 → 両端から先に決める
左端と右端にA, Bを配置する方法:$2! = 2$ 通り(Aが左・Bが右、またはその逆)。 残り5人(C, D, E, F, G)の並び方:$5! = 120$ 通り。 $2 \times 120 = 240$ 通り。
(3) 「男子が隣り合わない」→ 女子を先に並べ、間に入れる
女子4人(D, E, F, G)を先に並べる:$4! = 24$ 通り。
女子の間と両端にできる隙間:○D○E○F○G○ の5か所。
5か所から3か所を選んで男子A, B, Cを1人ずつ入れる:$_5P_3 = 60$ 通り。
$4! \times {_5P_3} = 24 \times 60 = 1440$ 通り。