错排公式
- f(1)=0
- f(2)=1
- f(n) = (n-1)[f(n-2)+f(n-1)] (n>2) 。
解析
错排就是指给定一个长度为n的数组,让数组中的n个元素都不在原来的位置上,看一共有多少种情况。
易得:
当n=1或n=2时,只有0种或1种情况是错排。
当n>2时,可以这样考虑( 假设方法为 f(n) ):
- 错排第1个元素(将 第1个元素排在第 2 至第 n 个位置之一),共有 n - 1 种情况。 此时假设第1个元素落在第inx位置。
- 错排剩余元素:当错排第idx个元素时,若第idx个元素落在第1个元素的位置,则剩下的n-2个元素可有f(n-2)个情况;否则,可将第1个位置看成第idx个位置,形成包括第idx元素等n-1个元素的错排,共有f(n-1)个情况。
- 将上述情况结合,即得到n>2的最终求解:f(n) = (n-1)[f(n-2)+f(n-1)] 。