码迷,mamicode.com
首页 > 其他好文 > 详细

经典递推问题错排公式分析

时间:2014-10-06 21:35:40      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:错排   递推   递归   

问题: 十本不同的书放在书架上。现重新摆放,使每本书都不在原来放的位置。有几种摆法?
这个问题推广一下,就是错排问题,是组合数学中的问题之一。考虑一个有n个元素的排列,若一个排列中所有的元素都不在自己原来的位置上,那么这样的排列就称为原排列的一个错排。 n个元素的错排数记为D(n)。 研究一个排列错排个数的问题,叫做错排问题或称为更列问题。
错排问题最早被尼古拉·伯努利和欧拉研究,因此历史上也称为伯努利-欧拉的装错信封的问题。这个问题有许多具体的版本,如在写信时将n封信装到n个不同的信封里,有多少种全部装错信封的情况?又比如四人各写一张贺年卡互相赠送,有多少种赠送方法?自己写的贺年卡不能送给自己,所以也是典型的错排问题。
以信封问题为例:

   1、当N=12时,易得解~,假设F(N-1)F(N-2)已经得到,重点分析下面的情况:

   2、当有N封信的时候,前面N-1封信可以有N-1或者 N-2封错装。
3、前者,对于每种错装,可从N-1封信中任意取一封和第N封错装,故=F(N-1)*(N-1)
4、后者简单,只能是没装错的那封和第N封交换信封,没装错的那封可以是前面N-1封中的任意一个,故=F(N-2) * (N-1)。

递归式:d[n]= (n-1)*( d[n-1]+ d[n-2]),

                                                                                                 特殊地,D(1) = 0, D(2) = 1.

经典递推问题错排公式分析

标签:错排   递推   递归   

原文地址:http://blog.csdn.net/u014492609/article/details/39830609

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!