问题引入

nn 封信从信封拆出,现将信放回,要求每封信都不能放到原来的信封里。求信放回的方案数。

Solution

设 DnD_n 为 nn 封信时的方案数。小写字母代表信,大写字母代表信封。

先考虑第一封信 aa,有 n−1n-1 个可以选择的信封。不妨设 aa 放入了 BB 信封。

再考虑信 bb 的放置。若 bb 放进 AA 信封,则余下 n−2n-2 封信的方案数即为 Dn−2D_{n-2}。_

若 BB 放进 A,BA,B 外的信封,则可看作除 AA 外余下 n−1n-1 封信的错排,即 Dn−1D_{n-1}。_

与 AA 的放置方案相乘,得到递推式:

Dn=(n−1)(Dn−1+Dn−2)D_n=(n-1)(D_{n-1}+D_{n-2})

其中手推易得 D1=0,D2=1D_1=0,D_2=1。

生成函数求解可得通项公式:

Dn=n!∑k=0n(−1)kk!D_n=n!\sum^{n}_{k=0}\frac{(-1)^k}{k!}