前言
错排是一个很经典的问题,对此,有一个二项式反演的求法。
- 常见方法
正常的错排的公式是基于容斥的。记 Pi P i 表示满足 i i 号点在自己的位置的排列,那么错排就是求一个: ,那么很明显用容斥原理计算一下就可以得到式子,这里不多说。
- 二项式反演
如果是要求错排,我们考虑其补集,就是说
n
n
个点的排列,有个点在自己原来的位置的方案,那么我们答案就是
k=0
k
=
0
的时候。
考虑怎么求这个东西。
先硬点
k
k
个点在自己的原位,即是 ,然后剩下的随便排,就是有
(n−k)!
(
n
−
k
)
!
种,但是明显会算重复以及不合法的。考虑容斥,对于一个
k0≥k
k
0
≥
k
,我们在硬点的时候有
Ckk0
C
k
0
k
的方案硬点到此,然后有
Ck0n
C
n
k
0
的选颜色的方案,所以就是这样,将这个式子取
k=0
k
=
0
的时候,与常见的方法算出来的一模一样。
具体的,式子就是:
- 原理
下面从二项式反演的角度来说明这个问题:
首先我们从广义的容斥原理来说,设
fi
f
i
为容斥系数,那么应当有:
∑ni=0Cinf(i)=[n=k]
∑
i
=
0
n
C
n
i
f
(
i
)
=
[
n
=
k
]
所以就出来了。