错排问题
Tags : 动态规划
- n个编号的元素放在n个编号的位置,第i个位置不能防止 i 号元素,即每个位置都错排,错排方法数为D(n)
- 取第 i 号元素用于安排位置,将他放在除 i 外的任一一个位置(n-1)种,假设为 j 号位,这时有两种情况
- j 号元素如果放在 i 号位,则转化成 (n-1)*D(n-2)
- j 号元素不放在 i 号位,此时可以假想 j 号元素对应归属从 j 号位变成 i 号位(因为按照错排规则,原先 j 号元素不能放在 j 号位(否则违反错排规则),现在情况变成 j 号元素不能放在 i 号位(否则违反当前情况的前提)),这样的话就转化成了(n-1)*D(n-1)
- 于是得到递推公式:D(n)=(n-1) * ( D(n - 2) + D(n - 1) )