对错排递推式的理解

错排问题与递推式的推导:

错排递推式:D[n]=(n-1)(D[n-1]+D[n-2])
说明:
有一个形象的例子可以说明何为错排:十本不同的书放在书架上。现重新摆放,使每本书都不在原来放的位置。有几种摆法?
将问题推广便得到错排问题,也就是求使N个数全不在自己位置上的方法数。令Dn代表N种不同物品错排的方法数,那么这个错排公式该如何推导呢?
我们令1—–N这N个数最初顺序摆放在他们原有的位置:(也就是最初完全有序)
推导:
想要求N个数错排,可以这样考虑:
当加入第N个数,对第N个数进行错排时,我们假设把他放到K位置上(1<=K<=n-1),此时的N已经完成错排,K有两种去向:

(1)K放到N的位置上,相当于K与N二者互换位置完成错排。因为二者位置已经固定,因此错排的结果也就是N-2个元素错排的结果:D[N-2];

(2)K不放在N的位置上。因为N的位置已经固定,因此我们无需再考虑N(此时K还没有地方放,自己的位置被占了,N的位置也不能去)。因为K不能放在N处,所以我们可以把N处看作K的初始位置,对于除了N的其他元素来说,他们全在自己的初始位置,因此要进行错排:D[N-1];

又因为N有(N-1)个位置可选,因此最后结果要乘以(N-1)
这样我们就得出了错排递推式:
                           D[n] =(n-1)*(D[n-1]+D[n-2])

猜你喜欢

转载自blog.csdn.net/cprimesplus/article/details/81591004
今日推荐