错排递推式推导

今天听课讲容斥,提到错排,突然发现错排公式什么的好像已经忘了233

努力地回忆了一下,算出前几项,终于还原出了那个递推式↓

f(n)=(n-1)*(f(n-1)+f(n-2))

根据人赢的教导,只要思(yi)考(yin)下错排的构造就能记住了

然后就认(meng)认(you)真(yi)真(yang)地思(yi)考(yin)了下

用自己的理解把这玩意儿整理了一下↓

先加一点平时我们说的错排通常是指1~n的排列a,满足a(i)≠i,

其实脑补一下,它也可以看成A,B两个集合,|A|=|B|,对于每一个Ai,都对应唯一Bi,不同Ai对应Bi不同,现在强行改变对应方式,仍然是一对一,但是每一个Ai对应的Bi都不再是之前那个Bi,问方案数。

假设要构造f(n),

首先,必须满足a(n)≠n,则第n位只能取1~n-1,且第n位取1~n-1的任何一个数都是等价的

令g(n)为前n位排好的方案数.

那么f(n)=g(n-1)*(n-1),

因为此时前n-1位数字不是1~n-1,而是1~n中除去任意一个x(x∈[1,n-1])的方案数,所以显然g(n-1)≠f(n-1)

对于每一个k(k属于[1,n-1])

存在前n-1位的构造根据第n个的摆放可以分成两种情况:

1) n放在第k位,k放在第n位,剩下n-2的数满足n-2的错排,方案数为f(n-2)

2) n不放在第k位,那么剩下n-1的数满足n-1的错排,方案数为f(n-1)

要满足两种情况不重复,就必须满足1~n-1的任意一种错排方案的前n-2个数的排列一定不等于任意一种1~n-2的错排方案

(很绕的一句话,不过显然是对的,因为假设存在相等,那么第n-1位只能放n-1,不满足错排)

所以g(n-1)=f(n-1)+f(n-2)

f(n)=(f(n-1)+f(n-2))*(n-1)

所以就证好了

其中初值还是很容易确定的,因为肯定要结合实际意义的嘛

f(0)=1   不放

f(1)=0   只有一个数,一个位置,显然不成立

错排公式的原型长这样→f(n)=n![1/0!-1/1!+1/2!-1/3!+1/4!+...+(-1)^n/n!],可以通过容斥,递推式各种方法求,这里就不证了ww

【写的有漏洞的,欢迎路过大神吐槽】

2016-08-06 16:48:00

Ending.

 

posted @ 2016-08-06 16:49  白云千载空悠悠  阅读(637)  评论(2编辑  收藏  举报