其他分享
首页 > 其他分享> > kkk

kkk

作者:互联网

1.装错信封问题(错排问题)

一个人写了 \(n\) 封信,以及有 \(n\) 个不同的信封,他把这 \(n\) 封信都装错了信封,问都装错的方案数有多少种。

2.问题的由来

错排问题最早可以追溯到十八世纪,最早被尼古拉·伯努利和欧拉研究,因此历史上也称为伯努利-欧拉的装错信封的问题。“装错信封问题”也被欧拉成为“组合数论的一个秒题”。

3.解法1(递推)

4.解法2(容斥)

\[\sum_{i=0}^n(-1)^i{n\choose i}=[n=0] \]

5.解法3(生成函数)

6.解法4(二项式反演)

该方法最为优美,但需要二项式反演的引理。

引理 1(组合恒等式):

\[{n\choose m}{m\choose r}={n\choose r}{n-r\choose m-r} \]

证明:

\[\begin{aligned} {\rm LHS}&=\frac{n!}{m!(n-m)!}\frac{m!}{r!(m-r)!}\\ &=\frac{n!}{r!(n-r)!}\frac{(n-r)!}{(n-m)!(m-r)!}\\ &={n\choose r}{n-r\choose m-r}={\rm RHS} \end{aligned} \]

引理 2(二项式反演):当 \(n\in\Z\) 时

\[f(n)=\sum_{i=0}^n{n\choose i}g(i)\Leftrightarrow g(n)=\sum_{i=0}^n(-1)^{n-i}{n\choose i}f(i) \]

证明(这里仅证明必要条件,充分条件同理):

\[\begin{aligned} {\rm RHS}&=\sum_{i=0}^n{n\choose i}\sum_{j=0}^i(-1)^{i-j}{i\choose j}f(j)\\ &=\sum_{j=0}^n\sum_{i=j}^n(-1)^{i-j}{n\choose i}{i\choose j}f(j)\\ &=\sum_{j=0}^n\sum_{i=j}^n(-1)^{i-j}{n\choose j}{n-j\choose i-j}f(j)\\ &=\sum_{j=0}^n{n\choose j}f(j)\sum_{i=j}^n(-1)^{i-j}{n-j\choose i-j}\\ &=\sum_{j=0}^n{n\choose j}f(j)\sum_{i=0}^{n-j}(-1)^i{n-j\choose i}\\ &=f(n)={\rm LHS} \end{aligned} \]

注意到证明使用了交换求和顺序、引理1,甚至使用了容斥中的结论!其实二项式反演的本质就是容斥。

由于 \({n\choose m}={n\choose n-m}\),于是我们可以直接

\[\sum_{i=0}^n{n\choose i}D_{n-i}=\sum_{i=0}^n{n\choose i}D_i=n!\Rightarrow D_n=\sum_{i=0}^n(-1)^{n-i}{n\choose i}i!=n!\sum_{i=0}^n\frac{(-1)^i}{i!} \]

标签:frac,sum,反演,装错,choose,kkk,rm
来源: https://www.cnblogs.com/ac-evil/p/14659728.html