同じものを含む順列の求め方

同じものを含む n 個を 1 列に並べる場合の数 n! ÷ (a! × b! × …) を求めます。個数をカンマ区切りで並べます(「aaabbc」なら 3, 2, 1)。

同じものが混ざっている nn 個を 1 列に並べる場合の数です。全体の階乗を、同じもののグループごとの階乗で割ります。

n!a!b!c!\dfrac{n!}{a!\, b!\, c! \cdots}

a,b,c,a, b, c, \ldots は、それぞれ同じものの個数です。合計すると nn になります。

「aaabbc」の 6 文字を並べ替えます。a が 3 個、b が 2 個、c が 1 個なので、個数として 3, 2, 1 を入力します。

6!3!2!1!=7206×2×1=72012=60\dfrac{6!}{3!\,2!\,1!} = \dfrac{720}{6 \times 2 \times 1} = \dfrac{720}{12} = 60

60 通りです。

なぜ割るのか

6 文字すべてが違うものなら 6!=7206! = 720 通りです。しかし 3 個の a は互いに区別できません。a どうしを入れ替えた 3!=63! = 6 通りは、見た目がまったく同じ並びになります。

同じように b どうしの入れ替え 2!=22! = 2 通りも重複します。だから 3!×2!×1!=123! \times 2! \times 1! = 12 で割るのです。

使いどころ

組み合わせ nCr_nC_r は、これの特別な場合(2 種類しかない場合)です。