什么是错排公式?

求有多少序列 $A$ 满足下列条件:

太长不看版: 设 $d(n)$ 为长度为 $n$ 的序列错排数量,则有

\[d(n)=\left\{ \begin{aligned} &1&(n=0)\\ &0&(n=1)\\ &(n-1)\times (d(n-1)+d(n-2))&(n\ge1) \end{aligned} \right.\]

证明

我们首先来考虑,首先将 $m$ 放置在 $k$ 位置上,显然 $k$ 的取值有 $(n-1)$ 个.

接下来考虑 $k$ 放置的位置:

  1. $k$ 放置在 $m$ 处
    则接下来要对剩下的 $n-2$ 个数进行错排,即 $d(n-2)$ 种情况, 此时第一种情况的个数为 $(n-1)\times d(n-2)$.
  2. $k$ 放置在 $i\ (i\ne m)$ 处
    那么显然 $i$ 不能等于 $k$ , 所以 $k$ 也是进行错误排序,即对剩余的 $(n-1)$ 个数进行错排,有 $d(n-1)$ 种情况,则第二种情况的个数为 $(n-1)\times d(n-1)$.

综上所述,

\[\begin{aligned} d(n)&=(n-1)\times d(n-2)+(n-1)\times d(n-1)\\ &=(n-1)\times (d(n-2)+d(n-1)) \end{aligned}\]

考虑边界情况,当 $n=0$ 时,即空序列,只有一种情况,即 $d(0)=1$.
当 $n=1$ 时, 唯一的这一个元素只能放在这个位置,所以没有办法进行错排,即 $d(1)=0$.

练习: P4071

错排公式还有通项公式和简化公式,不过我太菜了就没看,如果你想看就去百度