狄利克雷卷积
狄利克雷卷积
设\(f: N\rightarrow R g:N\rightarrow R\)是两个函数
则它们的狄利克雷卷积为\((f*g)(n)=\sum_{d|n}f(d)g(\frac{n}{d})\)
命题
如果\(f(n)和g(n)为积性函数,则h(n)=(f*g)(n)也为积性函数\)
定理
\(\:\:\:\:f=g*1 \Leftarrow\Rightarrow g=f*\mu\)
则\(f(n)=\sum_{d|n}g(d)\Leftarrow\Rightarrow g(n)=\sum_{d|n}\mu(\frac{n}{d})f(d)\)
性质
交换律\(f*g=g*f\)
结合律\((f*g)*h=f*(g*h)\)
分配律\((f*(g+h))(n)=(f*g)(n)+(f*h)(n)\)
一些函数
单位函数\(\epsilon(n)=[n=1]\)
幂指函数\(Id_k(n)=n^k\),当\(k=1,Id(n)=n\),当\(k=0,Id_0(n)=1\)
除数函数\(\sigma_k(n)=\sum_{d|n}d^k\),当\(k=1,\sigma(n)\)为n的因数和,当\(k=0,\sigma_0(n)\)为因数个数
欧拉函数\(\phi(n)\)
这四个函数都是积性函数
前两个为完全积性函数\(f(a)f(b)=f(ab)\),其中a,b不用满足互质
一些公式
根据定义\((f*1)(n)=\sum_{d|n}f(d)\)
- \((Id_k(n)*1)(n)=\sum_{d|n}Id_k(d)=\sum_{d|n}d^k=\sigma_k(n)\)
- 根据\((\phi*1)(n)=\sum_{d|n}\phi(d)\)
当\(n=p^m\)(p为质数)
\(\sum_{d|n}\phi(d)=\phi(1)+\sum_{i=1}^m\phi(p^i)=1+\sum_{i=1}^m(p^i-p^{i-1})=p^m=n\)
若\(n=p_1^{m_1}···p_k^{m_k}=\prod_{i=1}^kp_i^{m_i}\)
由于\((\phi*1)(n)\)为积性函数
\((\phi*1)(n)=\prod_{i=1}^k(\phi*1)(p_i^{m_i})=n\)
所以公式为\(\phi*1=Id_1\)
根据前面所述的定理\(\phi=\mu*Id\) - \((\epsilon*1)(n)=\sum_{d|n}[d=1]=1\)
则\(\epsilon=\mu*1\)
应用
杜教筛
快速求\(M(n)=\sum_{i=1}^n\mu(i),(n\leq 10^{11})\)
\(M(n)=1-\sum_{i=2}^nM(\lfloor \frac{n}{i} \rfloor)\)
证:
根据\(\epsilon=\mu*1\)
则\(1=\sum_{i=1}^n\epsilon(i)=\sum_{i=1}^n(\mu*1)(i)=\sum_{i=1}^n\sum_{d|i}\mu(d)=\sum_{i=1}^nM(\lfloor \frac{n}{i} \rfloor)\)
\((M(\lfloor \frac{n}{i} \rfloor)由下图解释)\)
则\(M(n)=1-\sum_{i=2}^nM(\lfloor \frac{n}{i} \rfloor)\)
当\(i\leq \sqrt n,\lfloor \frac{n}{i} \rfloor\)显然只有\(\sqrt n\)个取值
当\(i > \sqrt n,\lfloor \frac{n}{i} \rfloor<\sqrt n\)显然只有\(\sqrt n\)个取值
对于固定的\(\lfloor \frac{n}{i} \rfloor\)是一段连续的区间,区间范围\([ \lfloor \frac{n}{\lfloor \frac{n}{i} \rfloor+1 }+1 \rfloor,\lfloor \frac{n}{\lfloor \frac{n}{i} \rfloor } \rfloor]\)
所以\(M(n)\)可以用整出分块来求,时间复杂度\(T(n)=\sum_{i=2}^nT(\frac{n}{i})=O(n^{\frac{3}{4}})\)
如果先预处理\(n^{\frac{2}{3}}\),则时间复杂度为\(O(n^{\frac{2}{3}})\)
具体证明见唐老师的blog