天天看點

錯排公式詳解

在HDU刷題時遇到了關于錯排公式的一些問題。本篇文章将詳細解釋錯排公式的推導過程。

錯排的定義:一段序列中一共有n個元素,那麼可知這些元素一共有n!種排列方法。假如在進行排列時,原來所有的元素都不在原來的位置,那麼稱這個排列為錯排。而錯排數所指的就是在一段有n個元素的序列中,有多少種排列方式是錯排。

遞歸關系:D(n)=(n-1)(D(n-1)+D(n-2))  特别地有D(1)=0,D(2)=1;

錯排公式:D(n)=(n!)[(-1)^0/0!+(-1)^1/(1!)+(-1)^2/(2!)+(-1)^3/(3!)+......+(-1)^n/(n!)];   其中n!=n*(n-1)*(n-2)*......3*2*1      特别地有0!=1  1!=1

首先來對遞歸公式進行解釋:

n個不同的元素的一個錯排公式可以分作兩步完成:

第一步:假設我們錯排第一個元素,那麼它可以從2~n的位置任意選擇其中的一個,一共是有n-1種選擇。

第二步:錯排其餘n-1個元素,也是需要分情況和種類的。因為這需要看第一步的結果,如果第一個元素落在第k個位置上,第二步就需要把k号元素進行錯排,k号元素錯排位置的不同将導緻不同的情況會發生:

1.假設k号元素正好落在了第一個元素的位置,那麼就可以将第一個元素和第k個元素完全剔除出去,因為相當于隻是他們兩者互換了位置,其他元素暫時還沒有發生變動。留下來的n-2元素進行錯排的話,那麼我們就可以得到了D(n-2)種 的錯排方式。

2.若k号元素不排到第一個元素的位置,我們可以暫時将現在排在k号位置的第一個元素剔除出去,生下來的就隻包含k号元素和原來n-2個的元素了。這時,我們可以将原來的第一個元素的位置看做是現在k号元素的原本位置,因為k号元素不能夠放在原來的位置上,是以就相當于是原來的n-2個元素和k共計n-1個元素進行完全的錯排。那麼一共就有D(n-1)種方法。 第二種情況希望大家仔細了解!配一張圖便于了解

那麼,我們有根據加法原理,完成第二步有D(n-2)+D(n-1)種方法。

根據乘法原理得到D(n)=(n-1)(D(n-1)+D(n-2)) 。遞推關系解釋完畢。

下面我們來推一下錯排公式

前提假設D(n)=n!N(n) 那麼我們根據上面的遞推公式可以得到n!N(n)=(n-1)[(n-2)!N(n-2)+(n-1)!N(n-1)],等式右邊合并一下,我們可以得到

n!N(n)=(n-1)!N(n-2)+(n-1)!N(n-1)同時消去(n-1)!可以得到nN(n)=N(n-2)+N(n-1)

 是以就有兩邊同時減去nN(n-1)得到:nN(n)-nN(n-1)=(n-1)N(n-1)+N(n-2)-nN(n-1)  即有:n(N(n)-N(n-1))=-N(n-1)+N(n-2)

即為(N(n)-N(n-1))/(N(n-1)-N(n-2))=(-1)/n;

同理有(N(n-1)-N(n-2))/(N(n-2)-N(n-3))=(-1)/(n-1);

            (N(n-2)-N(n-3))/(N(n-3)-N(n-4))=(-1)/(n-2);

            ......

            (N(3)-N(2))/(N(2)-N(1))=(-1)/3;

一共我們得到了n-2個等式,我們可以讓左邊的等式相乘,右邊的等式相乘,因為相消,那麼我們可以得到的等式是

(N(n)-N(n-1))/(N(2)-N(1))=(-1)^(n-2)/[n*(n-1)*(n-2)*(n-3)*......4*3]    等式1

又因為(-1)^(n-2)=(-1)^(n)

等式2并且N(2)=D(2)/2!=1/2   N(1)=D(1)/1!=0  是以有N(2)-N(1)=1/2

等式3 将這兩個等式2和3帶入到上面等式1中我們可以得到:

N(n)-N(n-1)=(-1)^n/[n*(n-1)*(n-2)*(n-3)*......*4*3*2]    即為:N(n)-N(n-1)=(-1)^n/n!

是以有N(n)=(-1)^2/2!+...(-1)^(n-1)/(n-1)!+(-1)^n/n!      又因為存在關系D(n)=n!N(n) 

得到D(n)=n![(-1)^2/2!+...(-1)^(n-1)/(n-1)!+(-1)^n/n! ]    得證

各位看官,推公式不易,且看且珍惜,THX。