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

杜教筛

作者:互联网

杜教筛

杜教筛用途:在低于线性时间里,高效率求一些积性函数的前缀和
杜教筛算法=整除分块+狄利克雷卷积+线性筛

杜教筛公式:

\[\begin{align} &g(1)S(n)=\sum_{i=1}^nh(i)-\sum_{i=2}^ng(i)S(\left\lfloor\frac{n}{i}\right\rfloor) \end{align} \]

1.积性函数

1.1 定义

(1)定义在所有正整数上的函数称为算术函数(或数论函数)。
(2)如果算术函数f对任意两个互质的正整数p和q,均有\(f(pq)=f(p)f(q)\),则称f为积性函数
(3)如果对任意两个正整数p和q,均有\(f(pq)=f(p)f(q)\),称f为完全积性函数。

1.2 积性函数的基本问题

(1)计算积性函数f的第n项f(n)。
(2)计算积性函数f在1~n范围内所有项:\(f(1)、f(2)、...、f(n)\)。
(3)计算积性函数f前n项的和,即前缀和。这就是杜教筛的目标。
后面以欧拉函数和莫比乌斯函数为例,解答了这几个问题。

1.3 常见积性函数

\[\begin{align} &I(n):恒等函数\qquad I(n)=1\\ &id(n):单位函数\qquad id(n)=n\\ &I_k(n):幂函数\qquad I_k(n)=n^k\\ &\epsilon(n):元函数\qquad \epsilon(n)=\left \{ \begin{array}{lr} 1,\ n=1\\ 0,\ n>1 \end{array} \right.\\ &\sigma(n):因子和公式\qquad \sigma(n)=\sum_{d|n}d\\ &d(n):约数个数\qquad d(n)=\sum_{d|n}1\\ \end{align} \]

// d|n: 可以理解为n是d的倍数,即n mod d=0

2 欧拉函数

2.1定义及性质

设n是一个正整数,欧拉函数φ(n) 定义为不超过n且与n互质的正整数的个数

\[\begin{align} &\phi(n)=\sum_{i=1}^n[gcd(i,n)=1] \end{align} \]

e.g.
n=4 : 1、3与4互质,φ(4)=2
n=9 : 1、2、4、5、7、8与9互质,φ(9)=6

[定理2.1]

设p和q是互质的正整数,那么φ(pq)=φ(p)φ(q),即欧拉函数是一个积性函数。

证明:暂时没搞懂??

[定理2.2]

设n为正整数,那么

\[\begin{align} &n=\sum_{d|n}\phi(d) \end{align} \]

证明:暂时没搞懂??*2

2.2求欧拉函数的通解公式

[定理2.3]

\[\begin{align} &设: n={p_1}^{a_1}*{p_2}^{a_2}*\dots*{p_3}^{a_3}为正整数n的质幂因子分解,那么:\\ &\phi(n)=n(1-\frac{1}{p_1})(1-\frac{1}{p_2})\dots(1-\frac{1}{p_k})=n\prod_{i=1}^k(1-\frac{1}{p_i}) \end{align} \]

上述公式,有两个特殊情况:

\[\begin{align} &(1)若n是质数,\phi(n)=n-1;\\ &(2)若n=p^k,p是质数,有:\\ &\phi(n)=\phi(p^k)=p^k-p^{k-1}=p^{k-1}(p-1)=p^{k-1}\phi(p) \end{align} \]

标签:begin,end,函数,积性,align,phi,杜教
来源: https://www.cnblogs.com/hankpeng/p/16209421.html