各种反演和筛的总结

各种反演和筛的总结

可以说是从零开始学了。

主要记录对这些东西的理解过程。

希望有发现错误的大佬能及时指出。

在更了在更了\(——1.31\)

大概咕掉了,有时间的话有可能会开一篇新的。\(——3.12\)


反演

对于两个函数\(f(x)\)\(g(x)\),我们有从\(f\)\(g\)的关系式。

\(g(n)=\sum^{n}_{i=0}A_{n,i}f(i)\)

其中\(A_{n,i}\)表示某种类型的计算方式,比如说组合关系或者倍数关系之类的。

那么很显然直接代入此式就会很方便\(f->g\)的推导。

而如果我们要求\(g->f\)的推导怎么办。

于是我们引入了反演

很显然并不是所有式子都可以有优秀的反演方法。


二项式反演

二项式相关,此时\(A_{n,i}\)是一个组合数的形式。

用更常见的形式:

\(g(n)=\sum_{i=0}^{n}{n\choose i}f(i)\)

\(f(n)=\sum_{i=0}^{n}(-1)^{n-i}{n\choose i}g(i)\)或者换下下标\(f(n)=\sum_{i=0}^{n}(-1)^{i}{n\choose i}g(n-i)\)

我们想想系数为什么是正负一。

我们考虑\(f(k)\)内的每一个贡献,它在\(i<k\)的时候会被计算的次数为:

\(\sum^{k-1}_{i=0}(-1)^{i}{k\choose i}\)

具体一点的意义,把以上式子用一个实例表述:

一共有\(n\)个人,每个人都有自己的座位,现在让他们都不坐在自己的座位上,求方案数。(错排问题)

那么所求就是\(f(n)\)表示恰好有\(n\)个人坐不到自己的座位上的方案数

\(g(n)\)表示所有坐座位的方案,那么\(g(n)=n!\) 表示这\(n\)个人随便坐。

\(g(n)=\sum_{i=0}^{n}{n\choose i}f(n-i)\)表示枚举\(i\)个人坐到自己的座位,再组合数选出这些人,然后其他人错排。

化一下下标\(g(n)=\sum_{i=0}^{n}{n\choose i}f(i)\),是不是熟悉的式子了。


回到上面实例前的那个式子

\(f(k)\)中的贡献相当于是恰好有\(k\)个人坐不到自己座位的方案

考虑对于每一种方案,这里相当于从\(0\)\(n\)枚举坐到自己座位上的人,所以在\(i<k\)的时候同样会计算到这些方案,而计算到的次数为:\(\sum^{k-1}_{i=0}(-1)^{i}{k\choose i}\)

这个自己理解一下。

把上面那个式子拆开变成 \(\sum^{k}_{i=0}(-1)^{i}{k\choose i}-(-1)^{k}{k\choose k}\)

\(k!=0\),所以左边根据组合数的性质就是\(0\),而右边剩下了\(-(-1)^k\)

也就是说多算了\(-(-1)^k\)遍,我们加回来就好了。


其实上面那个就是容斥。

或者说整个二项式反演都是容斥。

或者说这些反演都用到了容斥。


总是有一种这些都是别人构造好的东西的感觉。

反演的实质去\(yyb\)那看?或者百度也行,我记得看到了一篇不错的。

初学呢哪那么厉害。


莫比乌斯反演

这个时候的\(A_{n,i}\)不一样了:

\(g(n)=\sum_{d|n} f(d)\)

相当于所有\(n\)的因数的\(f\)加起来,那这个怎么做啊。

先放式子:\(f(n)=\sum_{d|n}\mu(\frac{n}{d})g(d)\)

这种情况显然复杂一些,\(\mu\)在这里相当于构造了一个函数,为了满足这个反演。

对于初学者而言,我们显然可以通过打表的优秀方式发现这个\(\mu\)的规律:

\(\mu(1)=1\)

根据唯一分解定理将一个数\(n\)分解为\(\prod_{i=1}^{t}p_i^{a_i}\)\(t\)为质因子个数

那么若存在\(a_i>1\)\(\mu(n)=0\),否则\(\mu(n)=(-1)^t\)

多手玩一下,就能更深刻地理解其中的关系。

另外我们把式子变个形,可以得到:

\(g(n)=\sum_{n|d}f(d)\),则有

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

这个要有个统一的上界,两式本质相同。


作为初学者,先得会用这些东西。

要知道在哪用以及怎么用

看到题列出式子一定要尝试向这些东西上靠,在做多了题之后就会理解了。


斯特林反演(记公式嘛)

单位根反演(记公式嘛)



筛法

杜教筛(在更了在更了)

\(min\_25\)筛(这是啥?)

posted @ 2018-12-28 19:09  Love_mona  阅读(339)  评论(2编辑  收藏  举报