参考博客
戳这里,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}
]