反演姿势总结

参考博客

戳这里,yyb怎么这么强啊。

反演

如果有(g(n)=sum_{i=0}^{n}a[n][i]f(i))

我们想构造一个矩阵(b),满足(f(n)=sum_{i=0}^{n}b[n][i]g(i))

(a)是一个下三角矩阵,(b)(a)的逆矩阵就可以了。

更具体的,就是要满足(sum_{i=m}^{n}b[n][i] imes a[i][m]=[n==m])

证明

[egin{aligned} &sum_{i=0}^{n}b[n][i]g(i)\ =&sum_{i=0}^{n}b[n][i]sum_{j=0}^{i}a[i][j]f(j)\ =&sum_{i=0}^{n}f(i)sum_{j=i}^{n}b[n][j] imes a[j][i]\ =&sum_{i=0}^{n}f(i)[i==n]\ =&f(n) end{aligned} ]

二项式反演

如果有(g(n)=sum_{i=0}^{n}inom{n}{i}f(i))

那么就有(f(n)=sum_{i=0}^{n}(-1)^{n-i}inom{n}{i}g(i))

还有一种形式,

[g(n)=sum_{i=0}^{n}(-1)^iinom{n}{i}f(i) ]

[f(n)=sum_{i=0}^{n}(-1)^iinom{n}{i}g(i) ]

还有,

[g(m)=sum_{i=m}^{n}inom{i}{m}f(i) ]

[f(m)=sum_{i=m}^{n}(-1)^{i-m}inom{i}{m}g(i) ]

还有,

[g(n)=sum_{i=0}^{n}inom{n+p}{i+p}f(i) ]

[f(n)=sum_{i=0}^{n}(-1)^{n-i}inom{n+p}{i+p}g(i) ]

还有(还有完没完了?),

[g(m)=sum_{i=m}^{n}inom{i+p}{m+p}f(i) ]

[f(m)=sum_{i=m}^{n}(-1)^{i-m}inom{i+p}{m+p}g(i) ]

证明

只证第一个式子,其他类似。

根据文章一开始的叙述,我们只需要证:

[sum_{i=m}^{n}b[n][i] imes a[i][m]=[n==m] ]

在这里就是:

[sum_{i=m}^{n}(-1)^{n-i}inom{n}{i}inom{i}{m}=[n==m] ]

简单推一下式子,

[egin{aligned} &sum_{i=m}^{n}(-1)^{n-i}inom{n}{i}inom{i}{m}\ =&sum_{i=m}^{n}(-1)^{n-i}inom{n}{m}inom{n-m}{i-m}\ =&inom{n}{m}sum_{i=m}^{n}(-1)^{n-i}inom{n-m}{i-m}\ =&inom{n}{m}sum_{i=0}^{n-m}(-1)^{n-m-i}inom{n-m}{i}\ =&inom{n}{m}(1-1)^{n-m}\ =&[n==m] end{aligned} ]

最后一步用到了二项式定理。

其他式子证明过程类似就不写了。

应用:快速求第二类斯特林数

戳我

子集反演

可以看成是二项式反演更一般的形式。

如果有(g(S)=sum_{T subseteq S}f(T))

那么(f(S)=sum_{T subseteq S}(-1)^{|S|-|T|}g(T))

还有,

[g(S)=sum_{T supseteq S}f(T) ]

[f(S)=sum_{T supseteq S}(-1)^{|T|-|S|}g(T) ]

暂时还不太会证,先鸽着。

斯特林数反演

斯特林数的一些性质

与斯特林数反演没太大关系,不过记下来说不定哪天就用到了呢。

没错还是这个连接,yyb为什么这么聚啊。

斯特林数反演

(s(n,m))表示第一类斯特林数,(S(n,m))表示第二类斯特林数(那个中括号大括号实在是太难敲了反人类啊)。

如果有(g(n)=sum_{i=0}^{n}S(n,i)f(i))

那么(f(n)=sum_{i=0}^{n}(-1)^{n-i}s(n,i)g(i))

为什么呢?

有一个叫做反转公式的东西:

[sum_{i=m}^{n}(-1)^{n-i}s(n,i)S(i,m)=[n==m] ]

[sum_{i=m}^{n}(-1)^{n-i}S(n,i)s(i,m)=[n==m] ]

这不就是我们想要证的那个东西吗?

关于反转公式的证明咕了。

莫比乌斯反演

[g(n)=sum_{d|n}f(d) ]

[f(n)=sum_{d|n}mu(frac{n}{d})g(d) ]

证明

麻麻我终于会证莫比乌斯反演啦!

还是根据前文的叙述,我们要证的是:

[sum_{i=m}^{n}b[n][i] imes a[i][m]=[n==m] ]

此处就是:

[sum_{i=m}^{n}[m|i][i|n]mu(frac{n}{i})=[n==m] ]

转化一下,就是:

[sum_{d|frac{n}{m}}mu(d)=[n==m] ]

根据:

[sum_{d|n}mu(d)=varepsilon(n)=[n==1] ]

其中(varepsilon(n))是狄利克雷卷积单位函数,相信大家都已经很熟练了。

证毕(确信)。

Update on 2019/01/14:差点忘记还有一个式子:

[g(n)=sum_{n|d}f(d) ]

[f(n)=sum_{n|d}mu(frac{d}{n})g(d) ]

(min-max)反演(容斥)

[max(S)=sum_{T subseteq S}(-1)^{|T|+1}min(T) ]

[min(S)=sum_{T subseteq S}(-1)^{|T|+1}max(T) ]

[kthmax(S)=sum_{T subseteq S}(-1)^{|T|+k}inom{|T|-1}{k-1}min(T) ]

这个反演(容斥)过程对于期望同样满足。

证明

还是只证第一个,其他类似。

设容斥系数为(f(x))(f(x))需要满足:

[[k==1]=sum_{i=1}^{k}inom{k-1}{i-1}f(i) ]

也就是:

[[k==0]=sum_{i=0}^{k}inom{k}{i}f(i+1) ]

好像可以二项式反演一下:

[f(x+1)=sum_{i=0}^{x}(-1)^{x-i}inom{x}{i}[x==0] ]

唔姆,这不就是:

[f(x+1)=(-1)^{x} ]

[f(x)=(-1)^{x-1} ]

单位根反演

前置姿势

[sum_{i=0}^{n-1}omega_n^i=[n==1] ]

然后这个式子是从上面的式子推出来的,

[[k|n]=frac{1}{k}sum_{i=0}^{k-1}omega_k^{in} ]

单位根反演

[egin{aligned} sum_{i=0}^{n}inom{n}{ki}&=sum_{i=0}^{n}inom{n}{i}[k|i]\ &=frac{1}{k}sum_{i=0}^{n}inom{n}{i}sum_{j=0}^{k-1}omega_k^{ij}\ &=frac{1}{k}sum_{j=0}^{k-1}sum_{i=0}^{n}inom{n}{i}omega_k^{ij}\ &=frac{1}{k}sum_{j=0}^{k-1}(omega_k^j+1)^n end{aligned} ]

UPD2019.5.9:

[egin{aligned} sum_{i=1}^{n}[k|i]a_i=&frac{1}{k}sum_{i=1}^{n}a_isum_{j=0}^{k-1}omega_k^{ij}\ =&frac{1}{k}sum_{j=0}^{k-1}sum_{i=1}^{n}a_iomega_k^{ij}\ =&frac{1}{k}sum_{j=0}^{k-1}A(omega_k^j) end{aligned} ]

原文地址:https://www.cnblogs.com/ErkkiErkko/p/10265527.html