容斥定理与错排问题

关于错排问题

给定 nnn 个数字,求数字 1,2,⋯ ,n1,2,\cdots,n1,2,,n 不排列在第 1,2,⋯ ,n1,2,\cdots,n1,2,,n 上的排列数量称为错排问题。

容斥定理

X1,⋯ ,XnX_1,\cdots,X_nX1,,Xn 为可数集合,那么 ∣X1∪⋯∪Xn∣|X_1\cup\cdots\cup X_n|X1Xn
∣X1∪⋯∪Xn∣=∑k=1,1⩽i1<⋯<ik⩽nn(−1)k+1∣Xi1∩⋯∩Xik∣ |X_1\cup\cdots\cup X_n|=\sum_{k=1,1\leqslant i_1<\cdots<i_k\leqslant n}^n(-1)^{k+1}|X_{i_1}\cap\cdots\cap X_{i_k}| X1Xn=k=1,1i1<<iknn(1)k+1Xi1Xik

求解错排问题

给定 nnn 个数字,我们令
Yi:={Permutations that number i is not at the position i} Y_i:=\{\text{Permutations that number }i\text{ is not at the position }i\} Yi:={Permutations that number i is not at the position i}

例如给定 n=3n=3n=3,我们有
Y1={213,312,231,321} Y_1=\{213,312,231,321\} Y1={213,312,231,321}

根据错排问题的描述,从 nnn 个数字的全排列中去除一个数字排对的情况、两个数字排对的情况、……、nnn 个数字排对的情况就得到了错排问题的全部可能排列。那么 nnn 数情况下错排问题的解 ana_nan 即为
an=n!−∣Y1∪⋯∪Yn∣ \begin{aligned} a_n&=n!-|Y_1\cup\cdots\cup Y_n|\\ \end{aligned} an=n!Y1Yn

显然对于互不相等的 1⩽i1<⋯<ik⩽n1\leqslant i_1<\cdots<i_k\leqslant n1i1<<ikn,有
∣Yi1∩⋯∩Yik∣=Cnk(n−k)! |Y_{i_1}\cap\cdots\cap Y_{i_k}|=C_n^k(n-k)! Yi1Yik=Cnk(nk)!

kkk 个数字排对,其余数字随意排列得到的排列数量。那么有
an=n!−∣Y1∪⋯∪Yn∣=n!−∑k=1n(−1)k+1Cnk(n−k)!=n!−∑k=1n(−1)k+1n(n−1)⋯(n−k+1)k!(n−k)!=n!−n!∑k=1n(−1)k+1k!=n!(1+∑k=1n(−1)kk!)=n!∑k=0n(−1)kk! \begin{aligned} a_n&=n!-|Y_1\cup\cdots\cup Y_n|\\ &=n!-\sum_{k=1}^n(-1)^{k+1}C_n^k(n-k)!\\ &=n!-\sum_{k=1}^n(-1)^{k+1}\frac{n(n-1)\cdots(n-k+1)}{k!}(n-k)!\\ &=n!-n!\sum_{k=1}^n\frac{(-1)^{k+1}}{k!}\\ &=n!\left(1+\sum_{k=1}^n\frac{(-1)^{k}}{k!}\right)\\ &=n!\sum_{k=0}^n\frac{(-1)^k}{k!} \end{aligned} an=n!Y1Yn=n!k=1n(1)k+1Cnk(nk)!=n!k=1n(1)k+1k!n(n1)(nk+1)(nk)!=n!n!k=1nk!(1)k+1=n!(1+k=1nk!(1)k)=n!k=0nk!(1)k

为了便于求解,给出 ana_nan 的递推。对于 n⩾1n\geqslant 1n1,我们有
an−nan−1=n!(−1)nn!=(−1)n⇒an=nan−1+(−1)n a_n-na_{n-1}=n!\frac{(-1)^n}{n!}=(-1)^n\Rightarrow a_n=na_{n-1}+(-1)^n annan1=n!n!(1)n=(1)nan=nan1+(1)n

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值