【数论基础】—— 错位排列

博客介绍了错位排列,即每个数都不在自己位置的排列。还探讨了递推求解错排的方法,设 dpn 表示 n 个数的错排种数,考虑最后一个数 n 有 n - 1 个位置可选,分情况得出总方案 dpn=(n - 1)(dpn - 1 + dpn - 2),并给出 dp1=0,dp2=1。

错位排列

定义

每个数都不在自己位置的排列,简称 错排
形式化的讲就是 若排列 f1,f2,…,fnf_1,f_2,\ldots,f_nf1,f2,,fn, 对于每个 iii,有 fi≠if_i \neq ifi=i 则这个排列 fff 是一个错排

递推求解错排

问: nnn 个数的错排有多少种?

我们不妨设 dpndp_ndpn 表示 nnn 个数的排列有多少种。
我们考虑最后的一个数 nnn,他有 n−1n-1n1 个位置可以选择,假设他选了第 xxx 位。

那么对于这个 xxx 他有两种选择:

  1. 排在 nnn 号位置上
  2. 不排在 nnn 号位置上

如果他排在 nnn 号位置上,那么其余数的方案和 n−2n-2n2 个数的错排是等价的。
如果他排在 nnn 号位置上,相当于其余 n−1n-1n1 个数,每个数都不能排在自己的位置上(对于 xxx 相当于不能排在 nnn 号位置上)

因此总方案dpn=(n−1)(dpn−1+dpn−2)dp_n = (n - 1)(dp_{n-1}+dp_{n-2})dpn=(n1)(dpn1+dpn2),特别的 dp1=0,dp2=1dp_1=0, dp_2=1dp1=0,dp2=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值