错排问题

错排问题:

对于一个长度为n的排列,若排列中的所有元素都不在原来的位置上,那么这样的排列就是原排列的一个错排。

设d(n)为长度为n的排列的错排数,d(n)的前几项为:
0,1,2,9,44,265,1854,

递推公式:

显然d(1)=0,d(2)=1

当n>=3时,假设n放在了第k位,因为要满足错排,所以1<=k<=n-1,
因为n排在第k位,那么k就要换到其他位置:
1.假设k换到第n位,因为k到n已经是错排,这时除了n和k两个已经错排的,还有n-2个位置需要错排,所以方案数为d(n-2)
2.假设k不换到第n位,将第n位重新考虑为第k位(假设k的原位置为n),此时包括k在内的n-1个数的错排都等价于只有n-1个数的错排,方案数为d(n-1)

综上可得:对于k的某一个取值,方案数为d(n-2)+d(n-1),因为k有1到(n-1)这n-1种取值,所以d(n)=(n-1)(d(n-2)+d(n-1))

通项公式:

公式1
在这里插入图片描述

公式2
错排公式的原形为D(n) = n! (1/0! - 1/1! + 1/2! - 1/3! - … + (-1)^n/n!),当n很大时计算很不方便。
简化后的公式为D(n) = [n!/e+0.5] ,其中e是自然对数的底,[x]为x的整数部分(即向下取整)。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章