D(n) = n*D(n-1) + (-1)^(n-2)

定理:

     对于n>=1;

      D(n) = n!(1-1/1!+1/2!-1/3!+……+(-1)^n*1/n! )

     

  证明:

 

  设1,2,...,n的全排列t1,t2,...,tn的集合为I,而使ti=i的全排列的集合记为Ai(1<=i<=n),

 

  则Dn=|I|-|A1∪A2∪...∪An|.

 

  所以Dn=n!-|A1∪A2∪...∪An|.

 

  注意到|Ai|=(n-1)!,|Ai∩Aj|=(n-2)!,...,|A1∩A2∩...∩An|=0!=1.

 

  由容斥原理:

 

  Dn=n!-|A1∪A2∪...∪An|=n!-C(n,1)(n-1)!+C(n,2)(n-2)!-C(n,3)(n-3)!+...+(-1)^nC(n,n)*0!

 

  =n!(1-1/1!+1/2!-1/3!+...+(-1)^n*1/n!)

 

 

 

有个牵手游戏规则如下:

 

有标号 1.的女生与标号1,2,3,4......n-1,n.的男生.

 

我们规定标号相同的男生与女生不能牵手。

 

同时规定错排个数为M(1),M(2),M(3)。。。M(n-1),M(n),

 

我们假设1号女生先开始牵手,那么有n-1种选法,我们假设2号女生牵手1和不牵1男生手的两种情况,

 

假设2一定牵手1,那么还有编号3,4......n-1,n的男女生,

 

则有(n-1)*M(n-2)种情况;

 

另一种情况2一定不牵1的手,那么1号男生就等价于2号男生因为1号男生一定不能牵2号女生的手,相当于还有编号2,3,4......n-1,n的男女生,

 

则有(n-1)*M(n-1)种情况;所以总共有(n-1)*(M(n-1)+M(n-2))种情况;

 

posted on 2011-11-18 15:21  狸の舞  阅读(649)  评论(0编辑  收藏  举报