其他分享
首页 > 其他分享> > 杜教筛

杜教筛

作者:互联网

认识一下常用数论函数$:$

$\mu$ 无需解释

$I =1\ $恒等函数(恒等于$1$)

$e= \ [n=1]$原函数

然后考虑莫比乌斯反演

性质式$:$

$\sum_{i|n}\mu(i)=[n=1]$

等价于

$\mu*I=e$

$F=\sum_{i|n}f[i]$

$F=(f*I)$

$F*\mu=(f*I)*\mu$

$F*\mu=f*(I*\mu)$

$F*\mu=f*e$

$F*\mu=f$

$f=F*\mu$

证毕

$n=\sum_{i|n}\phi(i)$

继续推导

$id=\phi*I$

$id*\mu=\phi*I*\mu$

$id*\mu=\phi*e$

$id*\mu=\phi$

$\phi(n)=\sum_{i|n}n/i\times\mu(i)$

$\phi(n)/n=\sum_{i|n}\mu(i)/i$

这貌似就是$\mu$和$\phi$的互相转化

那么杜教筛是什么$:$

考虑求$\sum f(i)$

$f(i)$为积性函数

积性函数$*$积性函数$=$积性函数

设$h=f*g$

$S(n)=\sum_{i=1}^nf(i)$

我们先求一个$h$的前缀和

$\sum_{i=1}^{n}h(i)=\sum_{i=1}^{n}\sum_{d|i}f(i/d)*g(d)$

$\sum_{i=1}^{n}h(i)=\sum_{d=1}^{n}g(d)\sum_{i=1}^{n/d}f(i)$

$\sum_{i=1}^{n}h(i)=\sum_{d=1}^{n}g(d)S(n/d)$

$\sum_{i=1}^{n}h(i)=g(1)S(n)+\sum_{d=2}^{n}g(d)S(n/d)$

$g(1)S(n)=\sum_{i=1}^{n}h(i)-\sum_{d=2}^{n}g(d)S(n/d)$

$g(1)S(n)=\sum_{i=1}^{n}(f*g)(i)-\sum_{d=2}^{n}g(d)S(n/d)$

当$h$的前缀和很好求,可以在$O(n^{2/3})$得到$S(n)$

感觉不会的话都尝试卷一下就可以了.

例$1.$

$S(n)=\sum_{i=1}^{n}\mu(i)$

如果是我,我会猜$g=I,h=e$

$S(n)=\sum_{i=1}^{n}e(i)-\sum_{d=2}^{n}S(n/d)$

$S(n)=1-\sum_{d=2}^{n}S(n/d)$

后面的显然可以整除分块,然后我发现这个可以递归?不用整除分块?

例$2.$

$S(n)=\sum_{i=1}^{n} \phi(i)$

$g=I,h=id$

$S(n)=\sum_{i=1}^{n}id(i)-\sum_{d=2}^{n}I(d)S(n/d)$

$S(n)=\sum_{i=1}^{n}i-\sum_{d=2}^{n}S(n/d)$

这也很显然了

例$3.$

$S(n)=\sum_{i=1}^{n} i\times\phi(i)$

考虑如果卷一下

$f*g=\sum_{i|n}(i\times\phi(i))*g(n/i)$

显然把后面配成$id$会很好,我一开始也这么想的...

$f*g=\sum_{i|n}n\times\phi(i)$

$f*g=n\times\sum_{i|n}\phi(i)$

$f*g=n^{2}$

$S(n)=\sum_{i=1}^{n}i^{2}-\sum_{d=2}^{n}id(d)\times S(n/d)$

我只能说很强了.

标签:phi,积性,sum,times,mu,杜教,id
来源: https://www.cnblogs.com/Force-A/p/15856799.html