错排问题:
n 个有序的元素有 n! 个不同的排列,若一个排列使得所有的元素都不在原来位置上,则称这个排列为错排。求 n 个元素有多少种错排?
对于这个问题,可以递归的来思考:
设最初有 n 个元素,其错排有 D[ n ] 种,考虑第 i 位元素的去向,有 n - 1 中情况。
若将其与第 j 位元素对调,则又可以分出两种:j 放在第 i 位;j 不放在第 i 位。
对于前者,我们可以继续考虑剩下的 n - 2 个元素的错排。
对于后者,我们可以继续考虑剩下的 n - 1 个元素的错排(包括原第 j 位元素,因为它不放在第 i 位)。
所以我们可以得到一个递推的关系式:
D[ n ] = ( n - 1 ) * ( D[ n - 2 ] + D[ n - 1 ] )
n 个有序的元素有 n! 个不同的排列,若一个排列使得所有的元素都不在原来位置上,则称这个排列为错排。求 n 个元素有多少种错排?
对于这个问题,可以递归的来思考:
设最初有 n 个元素,其错排有 D[ n ] 种,考虑第 i 位元素的去向,有 n - 1 中情况。
若将其与第 j 位元素对调,则又可以分出两种:j 放在第 i 位;j 不放在第 i 位。
对于前者,我们可以继续考虑剩下的 n - 2 个元素的错排。
对于后者,我们可以继续考虑剩下的 n - 1 个元素的错排(包括原第 j 位元素,因为它不放在第 i 位)。
所以我们可以得到一个递推的关系式:
D[ n ] = ( n - 1 ) * ( D[ n - 2 ] + D[ n - 1 ] )