狄利克雷卷积和莫比乌斯反演初探
0. 前置知识
1. 狄利克雷卷积
定义
定义域为 \(\mathbb{N_+}\) 的函数称为数论函数。
对于两个数论函数 \(f,g\),其狄利克雷卷积为 \(h(n)=\sum\limits_{d\mid n} f(d)g(\dfrac{n}{d})=\sum\limits_{ab=n} f(a)g(b)\),简记为 \(h=f * g\)
性质
狄利克雷卷积具有以下性质:
交换律 :\(f * g=g * f\)。
非常好感性理解,因为狄利克雷卷积是对称的。
证明:令 \(x=b,y=a\),则\((f * g)(n)=\sum\limits_{ab=n} f(a)g(b)=\sum\limits_{ba=n}g(b)f(a)=\sum\limits_{xy=n}g(x)f(y)=(g * f)(n)\)。
故 \(f * g=g * f\)。
从这个证明可以得出,对于一般的卷积 \((f * g)(n)=\sum\limits_{a\oplus b=n} f(a)g(b)\),若 \(\oplus\) 运算满足交换律,则 \(f * g\) 满足交换律。
结合律:\((f * g) * h=f * (g * h)\)
证明:
此时 \(c\mid n\) 在第二个条件成立时一定成立。
同交换律一样,若 \(\oplus\) 具有结合律,则其对应的卷积也具有结合律。
分配律:\((f+g) * h=f * h+g * h\)
证明:
故 \((f+g) * h=f * h+g * h\)
等式的性质:\(f=g \iff f * h=g * h\),其中 \(h(1)\not=0\)
\(f=g \Rightarrow f * h=g * h\) 显然,下证:\(f=g \Leftarrow f * h=g * h\)
证明:
考虑反证法。若 \(f\not=g\),则必定存在一个 \(y\in\mathbb{N_+}\),使得 \(\forall i<y,f(i)=g(i)\),且 \(f(y)\not=g(y)\)。
设 \(r=f * h-g * h=(f-g) * h\)
则:
与 \(r(y)=(f * h)(y)-(g * h)(y)=0\) 矛盾。
证毕。
注:由于逆元存在,该结论是显然的。
单位元:即单位函数 \(\varepsilon(x)=[x=1]\) ,满足对于任意数论函数 \(f\),有 \(f * \varepsilon=f\)。
逆元:对于任意数论函数 \(f\) 满足 \(f(1)\not=0\),则存在数论函数 \(g\) 满足 \(f * g=\varepsilon\)。
显然,若逆元存在,必唯一。
考虑构造一个 \(g\)。\((f * g)(x)=\varepsilon(x)\)
特别地,当 \(f\) 为积性函数时,\(f(1)=1\),此时 \(g(n)=\varepsilon(n)-\sum_{d\mid n,d\not=1}f(d)g(\frac{n}{d})\)
为了简便,下将 \(f\) 的逆元记为 \(f^{-1}\)。(区别于反函数)
2. 积性函数
定义
若数论函数 \(f(x)\) 满足 \(f(1)=1\),且 \(\forall n,m\in\mathbb{N^* },\gcd(n,m)=1,f(nm)=f(n)f(m)\),则称 \(f(x)\) 是积性函数。
若数论函数 \(f(x)\) 满足 \(f(1)=1\),且 \(\forall n,m\in\mathbb{N^* },f(nm)=f(n)f(m)\),则称 \(f(x)\) 是完全积性函数。
常见的积性函数有:
- 单位函数 \(\varepsilon(x)=[x=1]\) (完全积性)
- 常函数 \(\mathbb{1}(x)=1\)(完全积性),为方便起见,用 \(I\) 替代。
- 恒等函数 \(\operatorname{id}_ k(x)=x^k\)(完全积性)(\(\operatorname{id}_0=I\))
- 除数函数 \(\sigma_k(x)=\sum_{d|x} d^k\),其中 \(\sigma_0(x)\) 为 \(x\) 的约数个数,又记作 \(\tau(x)\),\(\sigma_1(x)\) 为 \(x\) 的约数和,简记为 \(\sigma(x)\)。(\(\sigma_k=\operatorname{id}_ k * \ I\))
- 莫比乌斯函数 \(\mu(x)=\begin{cases}1&x=1\\0&\exists d>1,d^2\mid x\\(-1)^{\omega(x)}&\text{otherwise}\end{cases}\),其中 \(\omega(x)\) 为 \(x\) 中不同质因子的个数。(\(\mu * I=\varepsilon\))
- 欧拉函数 \(\varphi(x)=\sum_{i=1}^n [\gcd(i,n)=1]\) 为 \(1\cdots x\) 中与 \(x\) 互质的数的个数。(\(\varphi=\mu * \operatorname{id}\) 或 \(\varphi * I =\operatorname{id}\))
notes:
- \(\mu\) 是 \(I\) 的卷积逆,这在下面也会提到。
- 设 \(x=\prod_{i=1}^k p_i^{\alpha_i}\),其中 \(\forall i,\alpha_i>0\) ,则 \(\varphi(x)=x\cdot \prod_ {i=1}^k(1-\dfrac{1}{p_i})\),\(\tau(x)=\prod_ {i=1}^k (\alpha_i+1)\),\(\sigma(x)=\prod_{i=1}^k \sum_ {j=0}^{\alpha_i} p_i^j\),都可以用积性在得出质数幂的结果后推出。
性质
- 若 \(f(x),g(x)\) 为积性函数,则下列函数为积性函数:
- \(h(x)=f(x^k)\)
证明:设 \(\gcd(x,y)=1\),则有 \(\gcd(x^k,y^k)=1\),则 \(h(x)h(y)=f(x^k)f(y^k)=f((xy)^k)=h(xy)\)
- \(h(x)=f^k(x)\)
证明:设 \(\gcd(x,y)=1\),则有,则 \(h(x)h(y)=f^k(x)f^k(y)=(f(x)f(y))^k=f^k(xy)=h(xy)\)
- \(h(x)=f(x)g(x)\)
证明:设 \(\gcd(x,y)=1\),则\(h(x)h(y)=f(x)f(y)\cdot g(x)g(y)=f(xy)g(xy)=h(xy)\)
- 若 \(f(x),g(x)\) 为积性函数,则下列函数为积性函数:(重要)
- \(h=f * g\)
证明:设 \(\gcd(x,y)=1\),则
- \(g\) 满足 \(f * g=\varepsilon\)
证明:\(g(x)=\varepsilon(x)-\sum_{d|x,d\not=1}f(d)g(\frac{x}{d})\)
设 \(\gcd(x,y)=1,x\leqslant y\)。
首先,\(\varepsilon(1)=f(1)g(1)=1,f(1)=1\Rightarrow g(1)=1\)。
使用数学归纳法。
-
\(xy=1\),此时 \(g(xy)=g(1)=g(x)g(y)\)
-
\(xy>1\),此时 \(\varepsilon(xy)=\varepsilon(x)\varepsilon(y)=0\),若此时 \(\forall x'y'<xy\) 且 \((x',y')=1\) ,\(g(x'y')=g(x')g(y')\)
证毕。
由上述结论可知,积性函数卷积性函数仍是积性函数,积性函数卷非积性函数是非积性函数。
3. 莫比乌斯反演
莫比乌斯函数公式推导
莫比乌斯函数 \(\mu\) 定义为常量函数 \(I\) 的逆。
显然,\(\mu\) 是积性函数(见上一节末)。
由逆元公式有 \(\mu(x)=\varepsilon(x)-\sum_{d\mid x,d\not=x} \mu(d)\)
当 \(x=1\) 时,\(\mu(1)=1\)
当 \(x\not=1\) 时,\(\mu(x)=-\sum_{d\mid x,d\not=x} \mu(d)\)
(i) \(p\in \mathbb{P}\),\(\mu(p)=-\mu(1)=-1\)
(ii) \(x=p^k(k\geq 2)\),由归纳法可知 \(\mu(x)=0\)
由于 \(\mu\) 是积性函数,所以我们可以对 \(x\) 标准分解后将其 \(\mu\) 值相乘。
令 \(x=p_1^{\alpha_1}p_2^{\alpha_2}\cdots p_k^{\alpha_k}\),\(\mu(x)=\prod \mu(p_i^{\alpha_i})\)
故 \(\mu(x)=\begin{cases}1&x=1\\0&\exists d>1,d^2\mid x\\(-1)^{\omega(x)}&\text{otherwise}\end{cases}\)
这个 \(\mu\) 可以线性筛筛出来。
莫比乌斯反演公式
形式一:(最本质的式子)
由于 \(\mu * I=\varepsilon\) 得
形式二:
设 \(f(n)=\sum\limits_{d\mid n} g(d)\),则 \(g(n)=\sum\limits_{d\mid n} \mu(d)f(\frac{n}{d})\)
证明:这个很显然。\(f=g * I\Rightarrow f * \mu=g\)
和式证明:
形式三:
设 \(f(n)=\sum\limits_{n\mid d} g(d)\),则 \(g(n)=\sum\limits_{n\mid d} \mu(\dfrac{d}{n})f(d)\)
这里的和式可以有上限,即只考虑 \(\leq lim\) 的数。
证明:
4.基础应用
莫比乌斯反演的题目常与整除分块同时出现。
例一
求 \(\displaystyle \sum_{i=1}^n\sum_{j=1}^m \left[(i,j)=1\right]\)
对于多组询问,可以预处理 \(\mu\) 之和,然后用整除分块做到 \(\mathcal O(n+T\sqrt n)\) 的复杂度。
例二
求 \(\varphi(n)\)
考虑到 \(\displaystyle\varphi(n)=\sum_{i=1}^n [(n,i)=1]\)
则
例三
求 \(\displaystyle \sum_{i=1}^n\sum_{j=1}^m (i,j)\)
可以发现,这个式子与例一的区别在于将 \(\mu\) 换成了 \(\varphi\)
例四
其实可以直接用 \(\varphi\) 做,但我们假装不能
答案为
用整除分块优化,单次复杂度 \(\mathcal O(\sqrt {\frac np})\)
总复杂度 \(\mathcal O(\sqrt n\cdot \sum_{p} \sqrt \frac 1p)\)
视为均匀分布,复杂度 \(\mathcal O(\sqrt n\cdot \frac 1{\ln n} \sum_{i=1}^n \sqrt \frac 1i)=\mathcal O(\frac n{\ln n})\)
例五
就是例四的多组询问版本。
考虑继续推式子。
令后面的东西为 \(f(i)\),则只需求出后面即可。
然后 \(f(i)\) 可以像埃筛一样处理。
整除分块即可。
复杂度 \(\mathcal O(n\log \log n+T\sqrt n)\)
例六
令 \(\displaystyle g(x,y)=\sum_{i=1}^n\sum_{j=1}^m ij=\frac{n(n+1)}{2}\cdot\frac{m(m+1)}{2}\)
令 \(\displaystyle f(n)=\sum_{d\mid n} \mu(d)\cdot d\)
由于 \(h(x)=\mu(x)\cdot x\) 是积性函数,所以 \(f=h * I\) 也是积性函数,可以线性筛预处理。
整除分块可做到 \(\mathcal O(T\sqrt n)\) 多组询问。
例七
求 \(\displaystyle \sum_{i=1}^n \mu^2(i)\)
所求即为 \(1\sim n\) 中无平方因子数个数。
用 \(f(i)\) 表示 \(\max_{d^2\mid i} d^2\)
答案即为 \(\displaystyle \sum_{i=1}^n [f(i)=1]=\sum_{i=1}^n \sum_{d\mid f(i)} \mu(d)\)
考虑到若 \(\mu(d)\not=0\),则 \(d^2\mid f(i)\),而这等价于 \(d^2\mid i\)。
改写为 \(\displaystyle \sum_{d=1}^n \mu(d)\lfloor\frac n{d^2}\rfloor\)
\(d\) 的有效上界 \(\sqrt n\)。
5.一些有用结论
- \(\mu(xy)=\mu(x)\mu(y)[x\bot y]\)
证明:显然。
- \(\displaystyle \sum_{d\mid n} \varphi(d)=n\)
证明:即 \(\varphi * I=\operatorname{id}\),可由 \(\varphi=\mu * \operatorname{id}\) 推出。
有人叫这个式子欧拉反演。
应用太广泛,不列了。
- \(\displaystyle \sum_{i=1}^n d(i)=\sum_{i=1}^n \lfloor\frac ni\rfloor\)
证明:
note: 注意到该式可以反向运用,用 \(\mathcal O(1)\) 算 \(\displaystyle \sum_{i=1}^n \lfloor\frac ni \rfloor\),优于整除分块的 \(\mathcal O(\sqrt n)\)
- \(\displaystyle d(xy)=\sum_{i\mid x}\sum_{j\mid y} [i\bot j]\)
证明:考虑构造双射 \(d\rightarrow (u,v)\)。
对于 \(\displaystyle d=\prod_{i=1}^k p_i^{c_i}\),如果 \(x\) 中有 \(p_i^{a_i}\),\(y\) 中有 \(p_i^{b_i}\)。
- \(c_i\leq a_i\) 时,令 \(v\) 中 \(p_i\) 次数为 \(0\)。
- \(c_i>a_i\) 时,令 \(u\) 中 \(p_i\) 次数为 \(0\),并让 \(v\) 中 \(p_i\) 次数为 \(c_i-a_i\)。
- \(\displaystyle \varphi(xy)=\frac {\varphi(x)\cdot \varphi(y)\cdot \gcd(x,y)}{\varphi(\gcd(x,y))}\)
证明:考虑当 \(x\bot y\) 时,\(\varphi(xy)=\varphi(x)\varphi(y)\)
而对于 \((x,y)>1\) 的情况,\((x,y)\) 中的每个质因子 \(p\) 都被多乘了 \((1-\dfrac 1p)\),一共被多乘了 $\dfrac {\varphi(\gcd(x,y))}{\gcd(x,y)} $,所以除掉这一项就好了。
见于 P4240 毒瘤之神的考验
6.结语
本文鸽了有接近半年,终于写完了。(你看发布时间很晚实际上是因为我把它修改了,企图掩盖是鸽子的事实)
删掉标题的“施工中”三个字时,有些怅然。时间过得太快了,水平尚未见增长,一个学期就过去了。开学时立下的雄心壮志,早已被时间消磨干净了吧……
建议同时阅读整除分块相关内容。