イガブロギュ ♡数学のお話♡

2011-03-18

完全順列と包除原理

| 17:40

何年か前の早稲田大学かどこかの大学入試問題に、次のようなものがありました。


男 5 人、女 5 人が合コンをしました。

男 i は女 i 以外の人だったら誰でもいいと思っています。(i = 1 〜 5)

このとき、全員の欲求を満たす男女のくっつけ方は何通りありますか。


原文そのままではないですが、意味は同じです。


さて、問題集に載っていた模範解答を見てみると、しらみ潰しに数えているだけでした。

それでは面白くありません。


実はこの問題の条件を満たす順列は「完全順列」または「撹乱順列」または「モンモール数」と呼ばれていて、その総数を求める公式が存在します。

公式を知っていれば代入してすぐです。

しかし、あろうことか、普通の教科書には載ってないのです。あららー。


「完全順列の総数の公式」

1 〜 n (n ¥geq 2) までの番号が書かれたボールを 1 〜 n までの番号が書かれた箱に入れるとき、いずれも番号が重ならないような順列(完全順列)の総数は

n! ¥sum_{k=2}^n ¥frac{(-1)^k}{k!}

でっす。


どうやったらこんな公式が出来上がるのかしら。

ふっしぎー。


説明します。


完全順列の総数を a_n で表します。

最後の n 番目の箱に入れるボールは 1 〜 n-1 の n-1 通りあって、それを i とすると


(i) i = n のとき i 番目の箱にボール n が入っているとき

i と n を入れ替えたのですから、残りの n-2 個の完全順列を考えればよく、a_{n-2} 通り。

例えば n = 5 のとき

1, 2, 3, 4, 5 を

5, ○, ○, ○, 1 と並べ替えると

1 と 5 以外の 3 箇所だけで考えれば良い、ということです。


(ii) i = n じゃないとき i 番目の箱にボール n が入っていないとき

例えば n = 5 のとき

1, 2, 3, 4, 5 を並べ替えて

○, ○, ○, ○, 1 となったとします。

○ には 2, 3, 4, 5 が入ります。

ただし、1 番目に 5 がくると (i) と同じことになるので、それはダメです。

ところで、1 番目に入れられないのは 1 も同じことで、今は ○ に入る数は 1 以外なので、ここで 5 を改めて 1 と呼ぶことにしても差し支えありません。

そうすると、1 〜 4 での完全順列を考えれば良いということで、数が減りました。

よって、一般の n の場合は a_{n-1} 通り。


(i), (ii) をあわせ、それぞれ i が n-1 パターンあることから、

a_n = (n-1)(a_{n-1} + a_{n-2})

という漸化式が成り立ちます。


うひゃー。


これは線形の漸化式じゃないので、普通にやったら解けません。

どうしましょ。

次のようにします。


右辺最初の n-1 が邪魔なので、n に 1 を足しましょ。

a_{n+1} = n(a_n + a_{n-1})

両辺から (n+1)a_n を引きます。そうすると上手くいくことを誰かが発見しました。

a_{n+1} - (n+1)a_n = -(a_n - na_{n-1})

ここで b_n = a_n - na_{n-1} とおくと

b_{n+1} = -b_n で、a_1 = 0, a_2 = 1 より

b_2 = a_2 - 2 a_1 = 1 なので

b_n = (-1)^n (n ¥geq 2)

ゆえに

a_n - na_{n-1} = (-1)^n

両辺を n! で割って

¥frac{a_n}{n!} - ¥frac{a_{n-1}}{(n-1)!} = ¥frac{(-1)^n}{n!}

¥frac{a_n}{n!} = ¥frac{a_{n-1}}{(n-1)!} + ¥frac{(-1)^n}{n!}

¥frac{a_1}{1!} = 0 より

¥frac{a_n}{n!} = ¥sum_{k=2}^n ¥frac{(-1)^k}{k!}

以上により

a_n = n! ¥sum_{k=2}^n ¥frac{(-1)^k}{k!}


できました。よかった。


それにしても、何だかとっても技巧的ですネ!

技巧的じゃない考え方なんてあるのかしら?


あります。


というわけで、完全順列の総数の公式を求める方法第二弾、です。


まず、包除原理の復習から。

n(A ¥cup B) = n(A) + n(B) - n(A ¥cap B)

これは数学Aの「順列・組合せ」の単元でお馴染みの公式で、和集合の要素の個数は、それぞれの集合の要素の個数を足して、余分に数えちゃった共通部分の要素の個数を引けば求められるよ!っていう式です。

ベン図をかけば明らかですね。

こいつを一般化します。


面倒なので n(A) の代わりに |A| と書くことにすると、集合が 3 つの場合、

|A ¥cup B ¥cup C| = |A|+|B|+|C|-|A ¥cap B|-|B ¥cap C|-|C ¥cap A|+|A ¥cap B ¥cap C|

が成り立ちます。

実際、

|A ¥cup B ¥cup C|

= |(A ¥cup B) ¥cup C|

= |A ¥cup B|+|C|-|(A ¥cup B) ¥cap C|

= |A ¥cup B|+|C|-|(A ¥cap C) ¥cup (B ¥cap C)|

= |A ¥cup B|+|C|-(|A ¥cap C|+|B ¥cap C|-|A ¥cap B ¥cap C|)

= |A|+|B|+|C|-|A ¥cap B|-|B ¥cap C|-|C ¥cap A|+|A ¥cap B ¥cap C|

です。


集合が 4 つの場合は、

|A ¥cup B ¥cup C ¥cup D|

=|(A ¥cup B ¥cup C) ¥cup D|

=|A ¥cup B ¥cup C|+|D|-|(A ¥cup B ¥cup C) ¥cap D|

=|A ¥cup B ¥cup C|+|D|-|(A ¥cap D) ¥cup (B ¥cap D) ¥cup (C ¥cap D)|

=|A ¥cup B ¥cup C|+|D|-(

  |A ¥cap D|+|B ¥cap D|+|C ¥cup D|

    -|A ¥cap B ¥cap D|-|B ¥cap C ¥cap D|-|A ¥cap C ¥cap D|

      +|A ¥cap B ¥cap C ¥cap D|)

=|A|+|B|+|C|+|D|

  -|A ¥cap B|-|A ¥cap C|-|A ¥cap D|-|B ¥cap C|-|B ¥cap D|-|C ¥cap D|

    +|A ¥cap B ¥cap C|+|A ¥cap B ¥cap D|+|A ¥cap C ¥cap D|+|B ¥cap C ¥cap D|

      -|A ¥cap B ¥cap C ¥cap D|

となります。


集合がいくつになっても同様にできることは明らかですね。


さて。

ここで、完全順列の話に戻ります。

以下、証明


i 番目の箱に i 番のボールが入っている順列からなる集合を A_i とおくことにすると、求める完全順列の総数は

a_n = n! - |A_1 ¥cup A_2 ¥cup ¥cdots ¥cup A_n|…(*)

となるので、包除原理が使えますね。よかったねっ。


ここで、

|A_i| = (n-1)!

|A_i ¥cap A_j| = (n-2)!

|A_i ¥cap A_j ¥cap A_k| = (n-3)!

などとなっており、

n 個の集合から k 個を選ぶ組合せは {}_n ¥mathrm{C}_k 通り。


よって

|A_1 ¥cup A_2 ¥cup ¥cdots ¥cup A_n|

= (|A_1| + |A_2| + ¥cdots + |A_n|)

  - (|A_1 ¥cap A_2| + |A_1 ¥cap A_3| + ¥cdots)

   + (|A_1 ¥cap A_2 ¥cap A_3| + ¥cdots)

    - ¥cdots

     (-1)^{n-1} (|A_1 ¥cap A_2 ¥cap ¥cdots ¥cap A_n|)

= ¥sum_{k=1}^n (-1)^{k-1}(n-k)!{}_n ¥mathrm{C}_k

= ¥sum_{k=1}^n (-1)^{k-1}¥frac{n!}{k!}

= n!¥sum_{k=1}^n ¥frac{(-1)^{k-1}}{k!}


したがって (*) とあわせて

a_n = n! - n!¥sum_{k=1}^n ¥frac{(-1)^{k-1}}{k!}

ここで、k = 1 のとき n! ¥frac{(-1)^{k-1}}{k!} = n! なので

a_n= n!¥sum_{k=2}^n ¥frac{(-1)^k}{k!}


できましたっ!


ここまで読んでくださった皆さん、ありがとうございました。


他にも公式の導き方は色々あるかもしれません。

自分なりに考えてみると面白いかもしれませんねっ。

yudai214yudai214 2011/03/18 17:45 完全順列だ!!

完全順列÷順列すると1/eに近づくって記事思い出した!!
http://livedoor.blogimg.jp/yudai214/imgs/d/b/dbc8daf5.JPG

igarisigaris 2011/03/19 09:32 完全順列の総数を求める上の公式は k=2 からになっていますが、実は k=0 からの和を考えても、k=0 のときと k=1 のときとで相殺するので同じことです。
すると、a_n/n! は n→∞ のとき、e^x のマクローリン展開で x=-1 としたものと同じになるんですね。
というわけで、それはつまり e^(-1) すなわち 1/e になると。

redcat_mathredcat_math 2011/03/19 10:18 > 最後の n 番目の箱に入れるボールは 1 〜 n-1 の n-1 通りあって、それを i とすると

とあるので i は 1 から n - 1 の間じゃないんですか ? 「i = n のとき」とは ?

igarisigaris 2011/03/19 10:38 あああ。ご指摘ありがとうございます。
i = n のとき、というのは、i 番目の箱にボール n が入っているとき、の間違いです。
直しておきました〜。

redcat_mathredcat_math 2011/03/19 22:15 修正どうもです。これで理解できました。