属于组合数,排列数这类的
定义:
n个有序的元素应有n!个不同的排列,如若一个排列使得所有的元素不在原来的位置上,则称这个排列为错排;有的叫重排。
如,1 2的错排是唯一的,即2 1。1 2 3的错排有31 2,2 3 1。这二者可以看作是1 2错排,3分别与1、2换位而得的。
错排公式:
递推关系:
-------------为求其递推关系,分两步走:
第一步,考虑第n个元素,把它放在某一个位置,比如位置k,一共有n-1种放法;
第二步,考虑第k个元素,这时有两种情况:
(1)把它放到位置n,那么对于除n以外的n-1个元素,由于第k个元素放到了位置n,所以剩下n-2个元素的错排即可,有
种放法;
种放法。
![](https://gss2.bdstatic.com/-fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D34/sign=16860e893badcbef05347802adafd7d0/d53f8794a4c27d1e143f0c8911d5ad6eddc43865.jpg)
(
2)第k个元素不放到位置n,这时对于这n-1个元素的错排,有
![](https://gss2.bdstatic.com/-fo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D33/sign=83dbc7211a38534388cf81229213c81c/c83d70cf3bc79f3d4e2dd07db0a1cd11738b29aa.jpg)
根据乘法和加法法则,综上得到
![](https://gss1.bdstatic.com/-vo3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D182/sign=151a2750de2a283447a6320369b4c92e/b90e7bec54e736d15a6dbb4591504fc2d5626904.jpg)
其中:
d[0] = 1;
d[1] = 0;
d[2] = 1;
时间复杂度为
![](https://gss3.bdstatic.com/7Po3dSag_xI4khGkpoWK1HF6hhy/baike/s%3D74/sign=fe378eab2d7f9e2f74351f0c1e30b368/b3b7d0a20cf431ad94537f744136acaf2fdd98fd.jpg)