错排问题

维基百科,自由的百科全书
(重定向自错排
跳转到导航 跳转到搜索

错排问题组合数学中的问题之一。考虑一个有<math>n</math>个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排。 <math>n</math>个元素的错排数记为<math>D_n</math>或<math>!n</math>。 研究一个排列错排个数的问题,叫做错排问题或称为更列问题

最早研究错排问题的是尼古拉·伯努利欧拉,因此历史上也称为伯努利-欧拉的装错信封的问题。这个问题有许多具体的版本,如在写信时将<math>n</math>封信装到<math>n</math>个不同的信封里,有多少种全部装错信封的情况?又比如四人各写一张贺年卡互相赠送,有多少种赠送方法?自己写的贺年卡不能送给自己,所以也是典型的错排问题。

定义[编辑]

记<math>D_n</math>为<math>\{1,2,\dots,n\}</math>上没有不动点的排列(即<math>\phi: \{1,2,\dots,n\} \to \{1,2,\dots,n\}, \ \phi(i) \ne i,\ \forall 1 \le i \le n</math>)的个数,<math>D_n</math>的值如下:(由<math>n=1</math>起)

0, 1, 2, 9, 44, 265, 1854, 14833, 133496, 1334961, 14684570, 176214841, 2290792932, ... [1]

不难发现,这个数列有一个规律

<math>D_n=nD_{n-1}+(-1)^n</math>。

例如有<math>n</math>封收件人不同的信,随机放入<math>n</math>个写了收件人地址的信封中寄出,求没有一个收件人收到他所应接收的信的几率。当<math>n=4</math>,设四封信为ABCD,则在<math>4! = 24</math>个排列之中,只有9个是错排,即<math>!4 = 9</math>:

BADC, BCDA, BDAC, CADB, CDAB, CDBA, DABC, DCAB, DCBA

所以其几率为

<math> \frac{9}{24} = 37.5\% </math>。

历史[编辑]

18世纪的法国数学家尼古拉·伯努利(1687-1759年)是最早考虑这个问题的人。之后欧拉也开始对这个问题感兴趣,并称之为“组合数学中的一个奇妙问题”(拉丁文:a quaestio curiosa ex doctrina combinationis),并独立解决了这个问题[2]

研究错排问题的方法[编辑]

枚举法[编辑]

对于情况较少的排列,可以使用枚举法[3]

  • 当n=1时,全排列只有一种,不是错排,D1 = 0。
  • 当n=2时,全排列有两种,即1、2和2、1,后者是错排,D2 = 1。
  • 当n=3时,全排列有六种,即1、2、3;1、3、2;2、1、3;2、3、1;3、1、2;3、2、1,其中只有有3、1、2和2、3、1是错排,D3=2。用同样的方法可以知道D4=9。
  • 最小的几个错排数是:D1 = 0,D2 = 1,D3=2,D4 = 9,D5 = 44,D6 = 265,D7 = 1854。[4]

递推数列法[编辑]

对于排列数较多的情况,难以采用枚举法。这时可以用递归思想推导错排数的递回关系式

显然D1=0,D2=1。当n≥3时,不妨设n排在了第k位,其中k≠n,也就是1≤k≤n-1。那么我们现在考虑k的情况。

  • 当k排在第n位时,除了n和k以外还有n-2个数,其错排数为Dn-2
  • 当k不排在第n位时,那就会剩下n-1个空位(原本n个位置扣掉第k位)和n-1个数字,在排除了排在第k位的n后,由于k不在第n位,等价于把第n个空位改名为k的错排问题。其错排数为Dn-1

所以当n排在第k位时共有Dn-2+Dn-1种错排方法,又k有从1到n-1共n-1种取法,我们可以得到:

Dn=(n-1)(Dn-1+Dn-2) [2]

在上面我们得到

Dn=(n-1)(Dn-1+Dn-2)

从这个公式中我们可以推出Dn的通项公式,方法如下:

为书写方便,记Dn = n!Mn,则M1 = 0, M2 = <math>\frac{1}{2}</math>

当n大于等于3时,由

Dn = (n-1)(Dn-1 + Dn-2),

<math>n! M_n = (n-1)(n-1)!M_{n-1} +(n-1)(n-2)! M_{n-2} =n! M_{n-1} - (n-1)!M_{n-1} +(n-1)! M_{n-2}</math>。

所以,<math>n M_n - n M_{n-1} =-M_{n-1} + M_{n-2} </math>。

于是有 <math>M_n - M_{n-1}=-\frac{1}{n}(M_{n-1}-M_{n-2})=...=(-\frac{1}{n})(-\frac{1}{n-1})...(-\frac{1}{3})(M_2-M_1)=(-1)^n\frac{1}{n!}.</math>

所以

<math>\begin{align}

M_{n}-M_{n-1}&=(-1)^{n}\frac{1}{n!} \\ M_{n-1}-M_{n-2}&=(-1)^{(n-1)}\frac{1}{(n - 1)!} \\ \vdots \quad &= \quad \vdots \\ M_2-M_1 &= (-1)^2\frac{1}{2!} \\ \end{align}</math>

将上面式子分边累加,得

<math>M_n=(-1)^2\frac{1}{2!}+(-1)^3\frac{1}{3!}...+(-1)^{n}\frac{1}{n!}.</math>

因此,我们得到错排公式

<math>D_n=n!M_n=n!(\frac{1}{2!}-\frac{1}{3!}+...+(-1)^n\frac{1}{n!}).</math>

多项式模拟[编辑]

<math>x_1,x_2,...,x_n</math>错排,<math>x_1</math>需排在<math>x_2,x_3,...,x_n</math>、<math>x_2</math>需排在<math>x_1,x_3,...,x_n</math>如此类推。

记<math>s=\sum_{r=1}^n x_r</math>,错排结果为<math>\displaystyle \prod_{r=1}^n (s-x_r)</math>中<math>\displaystyle \prod_{r=1}^n x_r</math>的系数

记<math>a_r=(-1)^r\sum x_1x_2...x_r</math>为基本对称多项式

<math>\displaystyle \prod_{r=1}^n (s-x_r)=\sum_{r=0}^n a_r s^{n-r}=\sum_{r=2}^n a_r s^{n-r}</math>

从<math>a_r</math>选出<math>x_1,x_2,...,x_r</math>,然后从<math>s^{n-r}</math>选出<math>x_{r+1},x_{r+2},...,x_n</math>,组成<math>\displaystyle \prod_{r=1}^n x_r</math>

从<math>a_r</math>选出r个x有<math>C_r^n</math>种可能,从<math>s</math>选出其余的n-r个x有

<math>\frac{(n-r)!}{1!1!...1!}=(n-r)!</math>

种可能

<math>\displaystyle \sum_{r=2}^n (-1)^r C_r^n (n-r)!=n!\sum_{r=2}^n \frac{(-1)^r}{r!} </math>

简化公式[编辑]

错位排列数的公式可以简化为:<math>D_n= \left\lfloor \frac{n!}{e}+0.5 \right\rfloor, </math>

其中的 <math>\lfloor n \rfloor </math> 为高斯取整函数(小于等于 n 的最大整数)[5]

这个简化公式可以由之前的错排公式推导出来。事实上,考虑指数函数在 0 处的泰勒展开

<math>\begin{align} e^{-1} &= 1 + \frac{\left( -1 \right)^1}{1!} + \frac{\left( -1 \right)^2}{2!} + \cdots + \left( -1 \right)^n\frac{1}{n!} + \frac{ e^{-c} }{(n+1)!} \left( c - 1 \right)^n \\
&= \frac{1}{2!}-\frac{1}{3!}+\cdots+\left(-1\right)^n\frac{1}{n!} + R_n \\
&= \frac{D_n}{n!} + R_n \\

\end{align}</math>

所以,<math> \frac{n!}{e} - D_n = n!\,R_n</math>。其中 Rn 是泰勒展开的余项,c 是介于 0 和 1 之间的某个实数。Rn绝对值上限为

<math> |R_n| \leqslant \frac{ e^0 }{(n+1)!} = \frac{1}{(n+1)!} </math>
<math>\Big| \frac{n!}{e} - D_n \Big| \leqslant \frac{ n! }{(n+1)!} = \frac{1}{(n+1)} </math>

当 n≥2 时,<math>\frac{1}{(n+1)} </math> 严格小于 0.5,所以 <math>D_n=n!\left(\frac{1}{2!}-\frac{1}{3!}+...+(-1)^n\frac{1}{n!}\right)</math> 是最接近 <math>\frac{n!}{e}</math> 的整数,可以写成

<math>D_n= \left\lfloor \frac{n!}{e}+0.5 \right\rfloor. </math>

参考资料[编辑]

  1. ^ Sloane, N.J.A. (编). Sequence A000166 (Subfactorial or rencontres numbers, or derangements: number of permutations of n elements with no fixed points.). The On-Line Encyclopedia of Integer Sequences. OEIS Foundation. 
  2. ^ 2.0 2.1 Heinrich Dörrie. Triumph der Mathematik: hundert berühmte Probleme aus zwei Jahrtausenden mathematischer Kultur. Courier Dover Publications. 1965 (English). 第19-21页
  3. ^ 卢开澄、卢华明. 《组合数学》. 清华大学出版社. ISBN 730213961X (中文(简体)). 
  4. ^ Miodrag Petković. Famous puzzles of great mathematicians. American Mathematical Soc. 2009. ISBN 9780821848142 (English). 第184-186页
  5. ^ Branislav Kisačanin. Mathematical problems and proofs: combinatorics, number theory, and geometry. Springer. 1998. ISBN 9780306459672 (English). 第43-44页

外部链接[编辑]