如何解决错排问题(递推和容斥原理)

错排问题

错排问题:对一组排列重新排列,使得任何一个元素和之前所在位置均不相同

1、使用递推关系

D n D_n Dn 表示 n n n 个元素错排方式数量。

假设对 1 … n 1\dots n 1n n n n 个数进行排列。原来的排列方式即为按顺序排列。

①先将 n n n 和任意一个数交换位置,再错排

方案数共有: ( n − 1 ) D n − 2 (n-1)D_{n-2} (n1)Dn2

②先将除了 n n n 以外的数错排,再任选一个位置上的数与 n n n 交换位置

方案数共有: ( n − 1 ) D n − 1 (n-1)D_{n-1} (n1)Dn1

D n = ( n − 1 ) ( D n − 2 + D n − 1 ) D_{n}=(n-1)(D_{n-2}+D_{n-1}) Dn=(n1)(Dn2+Dn1)
D n n ! = E n \frac{D_n}{n!}=E_n n!Dn=En,则
E n = n − 1 n ( n − 1 ) D n − 2 ( n − 2 ) ! + n − 1 n D n − 1 ( n − 1 ) ! = 1 n E n − 2 + ( 1 − 1 n ) E n − 1 \begin{aligned} E_n&=\frac{n-1}{n(n-1)}\frac{D_{n-2}}{(n-2)!}+\frac{n-1}{n}\frac{D_{n-1}}{(n-1)!}\\ &=\frac{1}{n}E_{n-2}+(1-\frac{1}{n})E_{n-1}\\ \end{aligned} En=n(n1)n1(n2)!Dn2+nn1(n1)!Dn1=n1En2+(1n1)En1

⟹ E n − E n − 1 = − 1 n ( E n − 1 − E n − 2 ) = ( − 1 ) n n ! \Longrightarrow E_n-E_{n-1}=-\frac{1}{n}(E_{n-1}-E_{n-2})=\frac{(-1)^n}{n!} EnEn1=n1(En1En2)=n!(1)n

D n = n ! E n = n ! ( ∑ i = 0 n ( − 1 ) n 1 i ! ) D_n=n!E_n=n!(\sum_{i=0}^n(-1)^n\frac{1}{i!}) Dn=n!En=n!(i=0n(1)ni!1)

2、使用容斥原理

在这里插入图片描述
此图片文章原文链接:
知乎@哈维

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值