Skip to content

反演主要用于替换组合式求和,重点在于推式子,原理暂略。

二项式反演

形式 0

g(n)=i=0n(1)i(ni)f(i)f(n)=i=0n(1)i(ni)g(i)

形式 1

g(n)=i=0n(ni)f(i)f(n)=i=0n(1)ni(ni)g(i)

形式 2

g(n)=i=n(in)f(i)f(n)=i=n(1)in(in)g(i)

欧拉反演

n=dnφ(d)

莫比乌斯反演

g(n)=dnf(d)f(n)=dnμ(d)g(nd)

特殊地,dnμ(d)=[n=1]

更特殊地,dgcd(i,j)μ(d)=[gcd(i,j)=1]

子集反演

g(S)=TSf(T)

可得反演式:

f(S)=TS(1)|S||T|g(T)

以及:

f(T)=TS(1)|S||T|g(S)

单位根反演

1mi=0m1(ωm)i×d=[md]

扩展到 dmodm=k 的情况:

1mi=0m1ωmi×(dk)=[dmodm=k]

把这个形式放到多项式上:对于多项式:f(x)=i=0naixi,求其所有下标同余 m 的系数之和。

i=0nai[imodm=k]=i=0nai1mj=0m1ωmj×(ik)=1mi=0m1ωmikj=0naj(ωmi)j=1mi=0m1ωmikf(ωmi)

时间复杂度:O(mT(n)),其中 T(n) 表示多项式单点求值的时间复杂度。

斯特林反演

f(n)=i=0n{ni}g(i)g(n)=i=0n(1)ni[ni]f(i)