积性函数
积性函数
定义&性质
对于所有互质的\(a,b\),满足\(f(ab)=f(a)f(b)\),则\(f\)为积性函数
对于所有的\(a,b\),满足\(f(ab)=f(a)f(b)\),则\(f\)为完全积性函数
对于积性函数,有\(f(1)=1\)
常见积性函数
1、\(1(n)=1\) 恒等函数
2、\(Id_k(n) = n^k\) 幂函数
3、\(\varepsilon(n) = [n=1]\) 单位函数
4、\(\sigma(n)\) 约数和函数
5、\(d(n)\) 约数个数函数
6、\(\varphi(n)\) 欧拉函数
7、\(\mu(n)\) 莫比乌斯函数
欧拉函数
见数论
莫比乌斯函数
\(\mu(n)=\begin{cases}1\hspace{1.5cm},n=1\\(-1)^k\hspace{0.8cm},n=p_1p_2...p_k\\0\hspace{1.5cm},\text{otherwise}\end{cases}\)
即每个质因数只出现最多\(1\)次
性质
由简单组合和二项式定理可证
约数个数函数
对于\(n=p_1^{a_1}p_2^{a_2}...p_k^{a_k}\),它的因数个数有:
\(d(n)=(1+a_1)(1+a_2)...(1+a_k)\)
不难发现也具有积性函数的性质
约数个数函数的上界
网上找到是\(\displaystyle d(n)\le n^{\frac{1.066}{\ln\ln n}}\),亲测能用
线性筛求积性函数
只需要分三类讨论即可(见数论)
所有积性函数都可以对这三类数有具体处理方式
莫比乌斯反演
(接下来会用不是很数学的方法来解释)
对于积性函数\(f(x),g(x)\),有
简单证明:
理解第二行的交换枚举量最关键
我们尝试先枚举\(k\):当\(k\)在\([1,n]\)范围枚举时,\(\displaystyle\frac n d\)的取值为\([k,n]\),此时\(\displaystyle\frac n d\)的范围很难简单表示,反向考虑,\(\displaystyle d\in[1,\frac n k]\),则有:\(\displaystyle \sum_{d\mid n}\sum _{k|\frac n d}\mu(d)g(k)=\sum_{k|n}\sum_{d|\frac n k}\mu(d)g(k)\),完成枚举量的交换
狄利克雷卷积
狄利克雷卷积是操作在积性函数上的二元函数,易知莫比乌斯反演是其子集
性质1:\(f\cdot g\)仍是一个积性函数(证明略)
性质2:任意两个积性函数都可以通过卷积得到另一个函数
常见卷积:
\(\mu\cdot 1=\varepsilon\)
\(\varphi \cdot 1=Id\)
\(\mu\cdot Id=\varphi\)
\(1\cdot 1=d\)
\(Id\cdot 1=\sigma\)
练习
P2522 [HAOI2011]Problem b
\(\ \ \ \ \displaystyle \sum_{i=1}^n\sum_{j=1} ^m[\gcd(i,j)=k]\)
\(\displaystyle= \sum_{i=1}^{\lfloor \frac n k\rfloor}\sum_{j=1} ^{\lfloor \frac m k\rfloor}[\gcd(i,j)=1]\)
\(\displaystyle= \sum_{i=1}^{\lfloor \frac n k\rfloor}\sum_{j=1} ^{\lfloor \frac m k\rfloor}\sum_{d|gcd(i,j)}\mu(d)\)
\(\displaystyle=\sum^{\min(\lfloor \frac n k\rfloor,\lfloor \frac m k\rfloor)}_{d=1}\mu(d)\sum_{i=1}^{\lfloor \frac n k\rfloor}\sum_{j=1} ^{\lfloor \frac m k\rfloor}[d\mid i][d\mid j]\)
\(\displaystyle=\sum^{\min(\lfloor \frac n k\rfloor,\lfloor \frac m k\rfloor)}_{d=1}\mu(d)\lfloor \frac n {kd}\rfloor\lfloor \frac m {kd}\rfloor\)
数论分块即可
细节理解
1、\(\displaystyle\lfloor \frac n {kd}\rfloor\lfloor \frac m {kd}\rfloor\) 的值为\(O(\sqrt n)\)级别
2、第四行中,\([d\mid\gcd(i,j)]=[d\mid i][d\mid j]\)
尝试自己证明
LCMSUM - LCM Sum
有好几种推法
\(\displaystyle \ \ \ \ \sum_{i=1}^n lcm(i,n)\)
\(\displaystyle =n\sum_{i=1}^n \frac {i}{\gcd(i,n)}\)
\(\displaystyle =n\sum_{d\mid n} \sum^n_{i=1}[\gcd(i,n)=d]\frac i d\)
\(\displaystyle =n\sum_{d\mid n} \sum^{\frac n d}_{i=1}[\gcd(i,\frac n d)=1]i\)
\(\displaystyle =n\sum_{d\mid n} \sum^{ d}_{i=1}[\gcd(i,d)=1]i\)
方法1
很巧妙地利用了一个结论:
观察\(\displaystyle \sum^{ d}_{i=1}[\gcd(i,d)=1]i\),即为与\(d\)互质的数的和,考虑欧拉函数
结论:\(d>1\)时,\(\displaystyle \sum^{ d}_{i=1}[\gcd(i,d)=1]i=\frac{\varphi(d)d} 2\)
引理:\(n>1\)时,\(\varphi(n)\)为偶数,且\(x\)与\(n-x\)成对出现(\(\gcd(a,b)=\gcd(a,a-b)=1\))
则\(\displaystyle \sum^{ d}_{i=1}[\gcd(i,d)=1]i\)为\(\displaystyle \frac{\varphi(d)} 2\)对\(x\)与\(d-x\)的和,得证
利用此结论化简:
\(\displaystyle =n\sum_{d\mid n} \frac{\varphi(d)d} 2\)
把\(d=1\)统一进来:
\(\displaystyle =\frac n 2\sum_{d\mid n} {d(\varphi(d)+\varepsilon(d))}\)
用埃筛即可跑出所有\(ans\)
方法2
暴力展开:
\(\displaystyle =n\sum_{d\mid n} \sum^{ d}_{i=1}\sum_{k\mid \gcd(i,d)} \mu(k)i\)
\(\displaystyle =n\sum_{d\mid n} \sum_{k\mid d} \mu(k)\sum^d_{k\mid i}i\)
\(\displaystyle =n\sum_{d\mid n} \sum_{k\mid d} \mu(k)k\sum^{\frac d k}_{i=1}i\)
\(\displaystyle =n\sum_{d\mid n} \sum_{k\mid d} \mu(k)k\cdot\frac {\frac d k\cdot(\frac d k+1)} 2\)
\(\displaystyle =\frac n 2\sum_{d\mid n} d\sum_{k\mid d} \mu(k)\cdot(\frac d k+1)\)
\(\displaystyle =\frac n 2\sum_{d\mid n} d\sum_{k\mid d} \mu(k)(Id(\frac d k)+1(\frac d k))\)
\(\displaystyle =\frac n 2\sum_{d\mid n} {d(\varphi(d)+\varepsilon(d))}\)
方法3
构造函数\(\to\)证积性\(\to\)线筛 link
最后一步也是埃筛
(感觉我在比赛中也构造不出来

浙公网安备 33010602011771号