莫比乌斯反演
积性定义: \(φ(ab)=\varphi(a)\varphi(b)\) (\(a,b\)互质时)
具有积性的函数叫积性函数。
如果 a,b 不互质时仍然是积性,那就是完全积性函数。
常见积性函数
- 单位函数:\(\varepsilon(n)=[n=1]\)(完全积性)
- 恒等函数:\(\operatorname{id}_k(n)=n^k\)(完全积性),当 \(k=1\) 时,简记为 \(id(n)=n\)
- 常数函数:\(\operatorname{1}(n)=1\)(完全积性)
- 除数函数:\(\sigma_k(n)=\sum_{d|n}d^k\),特殊地,\(\sigma_0(n)\) 即因数个数,简记为 \(\operatorname{d}(n)\);\(\sigma_1(n)\) 即因数之和,简记为 \(\sigma(n)\)
- 欧拉函数:\(\varphi(n)=\sum_{d=1}^n[\gcd(d,n)=1]\)
- 莫比乌斯函数:\(\mu(x)=\begin{cases}1\ \ &(x=1)\\(-1)^k\ \ &(\text{x没有平方数因子,且x的质因子个数为k})\\0 &(\text{x有平方数因子})\end{cases}\)
(注:莫比乌斯函数的定义是为了满足下文的某些奇妙性质。)
这些积性函数都可以用线性欧拉筛 \(O(n)\) 地筛出。
可以证明,积性函数在 \(1\) 处的取值为 \(1\)
Dirchlet 卷积
定义 \(\otimes\) :
\[\Large{(f \otimes g)(n) = \sum_{d|n} f(d)g({n\over d})}
\]
奇妙性质
- \(\large{\varphi\otimes 1 = id}\)
- \(\large{\mu\otimes 1 = \varepsilon }\)
- \(\large{\mu\otimes \operatorname{id} = \varphi }\)
- \(1\otimes1 = \operatorname{d}\)
- \(id \otimes1 = \sigma\)
- \(id_k\otimes1 = \sigma_k\)
前两个换一种写法就是:\(\sum\limits_{d\mid n} \varphi (d) = n\), \(\sum\limits_{d\mid n} \mu (d) = [n=1]\)。证明比较骚。
第三个相当于第一个式子两边 \(\otimes\) 上 \(\mu\),又因为显然有 \(\varphi \otimes\varepsilon=\varphi\),化简出来就是第三个式子。
最后三个用定义可得到,比较好理解。
$\small{个人感觉 \(\varepsilon\) 相当于函数中的单位元,\(\mu\) 相当于 \(1\) 的逆元}$
莫比乌斯反演
\[g(n)=\sum_{i|n}f(i)\Longleftrightarrow f(n)=\sum_{i|n}\mu\left(\frac{n}{i}\right)g(i)
\]
不过这玩意一般不用。
题目与套路
莫反的套路比较死。基本上看到有 \(\gcd,lcm,[k= 1]\) 之类的玩意就可以无脑套上莫反。
【例题】 求:
\[\sum_{i = 1}^{n}\sum_{j = 1}^{m} \text{lcm}(i,j)
\]
\[\begin{align}
\sum_{i = 1}^{n}\sum_{j = 1}^{m} \text{lcm}(i,j)
&= \sum_{i = 1}^{n}\sum_{j = 1}^{m} \text{gcd}(i,j){i\over g}{j\over g}\\
&= \sum_{d}^{n}d\sum^{n/d}_i\sum^{m/d}_j ij[\gcd(i,j)=1] \text{先枚举gcd,并要求i,j互质,表示的是gcd多少倍}\\
&= \sum_{d}^{n}d\sum^{n/d}_i\sum^{m/d}_j ij\sum_{k|\gcd(i,j)}\mu(k) \text{奇妙的性质第二条}\\
&= \sum_{d}^{n} \sum_{k}^{kd\le \min(n,m)}\mu(k)dk^2\sum^{n/kd}_ii\sum^{m/kd}_j j \text{类比第二步}
\end{align}\\
\]
令 \(S(n) = \sum^n_i i = (n + 1) * n / 2,T=kd\),那么上式等于:
\[\begin{align}
&= \sum_{d}^{n} \sum_{k}^{\min(n,m)/d}\mu(k)dk^2S(n/kd)S(m/kd)\\
&= \sum_T^{n}\sum_{k|T}\mu(k)TkS(n/T)S(m/T)\\
&=\sum_T^{n}S(n/T)S(m/T)T\sum_{k|T}\mu(k)k
\end{align}\\
\]
后面是积性函数,用线性筛 \(O(n)\),前面整除分块。
积性证明:
设 \(f(pq) = \sum_{xy|pq}\mu(xy)xy\) (p,q互质)
\(f(p)=\sum_{x|p}\mu(x)y,f(q)=\sum_{y|q}\mu(y)y\)
因为 p,q互质,所以 x,y 整除 p,q 中的其中一个。
钦定 x | p, y | q(注意,如果 \(xy\mid p\) 则,等价于把 \(xy\) 看成新的 \(x\), 把 \(1\) 看作 \(y\), 这种情况会在之前统计过)
\(f(pq) = \sum_{xy|pq}\mu(xy)xy = \sum_{x|p}\mu(x)x\sum_{y|p}\mu(y)y=f(p)f(q)\)
对于 \(f(j^2p) = f(jp) + \sum\mu(j^2x)j^2x = f(jp)\),其中 \(j,p\) 互质。
\(f(p) = \mu(1)1 + \mu(p)p\),其中 \(p\) 是质数。
\(f(1)=\mu(1)1 = 1\)。

例2:[P5518 MtOI2019] 幽灵乐团 / 莫比乌斯反演基础练习题 - 洛谷 (luogu.com.cn).
吐槽一下:这题是一道一点都不基础莫比乌斯反演基础练习题,要用到很多 \(\prod\) 的性质,不过也可以无脑 exp ln 转和式乱搞。
一些约定: \([i\perp j]\) 表示 \(\gcd(i,j)=1\),\([p]\) 表示 该项只在 p 为真时存在,在 p 为假的时候不存在。上界默认为 \(A,B,C\) 最大值。
下文大量运用:累乘性质.
\[\begin{array}{l}
\prod_{i=1}^{A} \prod_{j=1}^{B} \prod_{k=1}^{C}\left(\frac{\operatorname{lcm}(i, j)}{\operatorname{gcd}(i, k)}\right)^{f(t y p e)}\\
\mathrm{type} \in \{0,1,2\}\\
\begin{array}{l}
f(0)=1 \\
f(1)=i \times j \times k \\
f(2)=\operatorname{gcd}(i, j, k)
\end{array}
\end{array}
\]
一看就很恶心。
先转化题目:
括号里面等于 \({ij\over gcd(i,j)gcd(i,k)}\),可以先算分子贡献,再算分母贡献。
因为有:
\[\prod_k i \times j = (\prod_k i) (\prod_k j) \text{乘法的交换律可推,注意这里k可以与i、j有关}
\]
所以我们可以只计算一下这两个式子的值:
\[\begin{align*}
&\prod_{i=1}^{A} \prod_{j=1}^{B} \prod_{k=1}^{C}i^{f(type)}\\
&\prod_{i=1}^{A} \prod_{j=1}^{B} \prod_{k=1}^{C}gcd(i,j)^{f(type)}
\end{align*}
\]
现在这个题被转化成了六个子问题了,
Type = 0
1:\(\prod_{i=1}^{A} \prod_{j=1}^{B} \prod_{k=1}^{C}i\).
\[\begin{align*}
&\ \ \ \prod_{i=1}^{A} \prod_{j=1}^{B} \prod_{k=1}^{C}i\\
&=\prod^A_i i^{BC} \text{累乘的性质罢了}
\end{align*}
\]
2:\(\prod_{i=1}^{A} \prod_{j=1}^{B} \prod_{k=1}^{C}gcd(i,j)\).
\[\begin{align*}
& \prod_{i=1}^{A} \prod_{j=1}^{B} \prod_{k=1}^{C}gcd(i,j)\\
&=(\prod_{i=1}^{A} \prod_{j=1}^{B} gcd(i,j))^C\\
&=(\prod_d \prod_{i=1}^{A/d} \prod_{j=1}^{B/d} d[i\perp j])^C\\
&=(\prod_d d^{\sum_{i=1}^{A/d} \sum_{j=1}^{B/d} [i\perp j]})^C\\
&=(\prod_d d^{\sum_g\mu(g)\sum_{i=1}^{A/gd} \sum_{j=1}^{B/gd} })^C\\
&=(\prod_d d^{\sum_g\mu(g)\left \lfloor A\over gd \right \rfloor \left \lfloor B\over gd \right \rfloor })^C\\
\end{align*}
\]
令 \(T=d\times g\),则:
\[\begin{align*}
&=(\prod_T (\prod_{d\mid T} d^{\mu({T\over d})}) ^{\left \lfloor A\over T \right \rfloor \left \lfloor B\over T \right \rfloor })^C\\
\end{align*}
\]
中间括号里面用欧拉筛积性函数预处理,直接整除分块 \(O(\sqrt n)\).
Type = 1
1: \(\prod_{i=1}^{A} \prod_{j=1}^{B} \prod_{k=1}^{C}i^{i*j*k}\).
记 \(\sum_1^n 1= S(n) = {n(n + 1)\over 2}\)
\[\begin{align*}
& \prod_{i=1}^{A} \prod_{j=1}^{B} \prod_{k=1}^{C}i^{i*j*k}\\
&= \prod_{i=1}^{A} \prod_{j=1}^{B} i^{i*j\sum^C_1}\\
&= (\prod_{i=1}^{A} \prod_{j=1}^{B} i^{i*j})^{S(C)}\\
&= (\prod_{i=1}^{A} i^i)^{S(B)S(C)}
\end{align*}
\]
2:\(\prod_{i=1}^{A} \prod_{j=1}^{B} \prod_{k=1}^{C}gcd(i,j)^{ijk}\).
\[\begin{align*}
& \prod_{i=1}^{A} \prod_{j=1}^{B} \prod_{k=1}^{C}gcd(i,j)^{ijk}\\
&= (\prod_{i=1}^{A} \prod_{j=1}^{B} gcd(i,j)^{ij})^{S(C)}\\
&= (\prod_d \prod_{i=1}^{A/d} \prod_{j=1}^{B/d} d^{idjd}[i\perp j])^{S(C)}\\
&= (\prod_d d^{\sum_{i=1}^{A/d} \sum_{j=1}^{B/d} ddij[i\perp j]})^{S(C)}\\
&= (\prod_d d^{d^2\sum_g \mu(g)\sum_{i=1}^{A/gd} \sum_{j=1}^{B/gd} gigj})^{S(C)}\\
&= (\prod_T\prod_{d\mid T} d^{\mu(T/d)d^2(T/d)^2 \sum_{i=1}^{A/T}i\sum_{j=1}^{B/T} j})^{S(C)}\\
&= (\prod_T\prod_{d\mid T} d^{\mu(T/d)T^2 S(A/T)S(B/T)})^{S(C)}\\
&= (\prod_T((\prod_{d\mid T} d^{\mu(T/d)})^{T^2})^{S(A/T)S(B/T)})^{S(C)}\\
\end{align*}
\]
类似于 type=0 - 2 ,中间可以欧拉筛预处理,然后整除分块。
Type = 2
1 : \(\prod_{i=1}^{A} \prod_{j=1}^{B} \prod_{k=1}^{C}i^{\gcd(i,j,k)}\).
\[\begin{align*}
&\ \ \ \ \prod_{i=1}^{A} \prod_{j=1}^{B} \prod_{k=1}^{C}i^{\gcd(i,j,k)}\\
&=\prod_d \prod_{i=1}^{A/d} \prod_{j=1}^{B/d} \prod_{k=1}^{C/d}(id)^{d}[\gcd(i,j,k)=1]\\
&=\prod_d \prod_{i=1}^{A/d}(id)^{d \sum_{j=1}^{B/d} \sum_{k=1}^{C/d}}[\gcd(i,j,k)=1]\\
&=\prod_d \prod_g\prod_{i=1}^{A/gd}(id)^{d\mu(g) \sum_{j=1}^{B/gd} \sum_{k=1}^{C/gd}}\\
&=\prod_d \prod_g\prod_{i=1}^{A/gd}(igd)^{d\mu(g) \left \lfloor B\over gd \right \rfloor \left \lfloor C\over gd \right \rfloor}\\
&=\prod_T \prod_{d\mid T}\prod_{i=1}^{A/T}(iT)^{d\mu(T/d) \left \lfloor B\over T \right \rfloor \left \lfloor C\over T \right \rfloor}\\
&=\prod_T (\prod_{i=1}^{A/T}\prod_{d\mid T}(iT)^{d\mu(T/d)})^{\left \lfloor B\over T \right \rfloor \left \lfloor C\over T \right \rfloor}\\
&=\prod_T (\prod_{i=1}^{A/T}(iT)^{\sum_{d\mid T}d\mu(T/d)})^{\left \lfloor B\over T \right \rfloor \left \lfloor C\over T \right \rfloor}\\
&=\prod_T (\prod_{i=1}^{A/T}(iT)^{\mu \otimes id})^{\left \lfloor B\over T \right \rfloor \left \lfloor C\over T \right \rfloor}\\
&=\prod_T (\prod_{i=1}^{A/T}(iT)^{\varphi(T)})^{\left \lfloor B\over T \right \rfloor \left \lfloor C\over T \right \rfloor}\\
&=\prod_T((\prod_{i=1}^{A/T}i^{\varphi(T)})(\prod_{i=1}^{A/T}T^{\varphi(T)})))^{\left \lfloor B\over T \right \rfloor \left \lfloor C\over T \right \rfloor}\\
&=\prod_T((\prod_{i=1}^{A/T}i)^{\varphi(T)}(T^{\left \lfloor A\over T \right \rfloor\varphi(T)})))^{\left \lfloor B\over T \right \rfloor \left \lfloor C\over T \right \rfloor}\\
&=\prod_T(\left \lfloor A\over T \right \rfloor!^{\varphi(T)}(T^{\left \lfloor A\over T \right \rfloor\varphi(T)})))^{\left \lfloor B\over T \right \rfloor \left \lfloor C\over T \right \rfloor}\\
\end{align*}
\]
\[\prod_T((\left \lfloor A\over T \right \rfloor!T^{\left \lfloor A\over T \right \rfloor})^{\varphi(T)})^{\left \lfloor B\over T \right \rfloor \left \lfloor C\over T \right \rfloor}\\
(\prod_T\left \lfloor A\over T \right \rfloor!^{\varphi(T)\left \lfloor B\over T \right \rfloor \left \lfloor C\over T \right \rfloor})(\prod_T T^{\varphi(T)\left \lfloor A\over T \right \rfloor\left \lfloor B\over T \right \rfloor \left \lfloor C\over T \right \rfloor})
\]
整除分块以后,那三个下取整都是定值,现在要求的是 \(\prod_T x^{\varphi(T)} = x^{\sum_T\varphi(T)}\) 和 \(\prod_T T^{\varphi(T)}\).
左边的,可以通过求 \(\varphi\) 的前缀和,右边的,把 \(\varphi\) 筛出来以后可以算 \(T^{\varphi(T)}\),求一个前缀积即可。\(O(\sqrt n \log n + n)\).
2.\(\prod_{i=1}^{A} \prod_{j=1}^{B} \prod_{k=1}^{C}\gcd(i,j)^{\gcd(i,j,k)}\).
\[\begin{align*}
&\ \ \ \prod_{i=1}^{A} \prod_{j=1}^{B} \prod_{k=1}^{C}\gcd(i,j)^{\gcd(i,j,k)}\\
&= \prod_d \prod_{i=1}^{A/d} \prod_{j=1}^{B/d} \prod_{k=1}^{C/d}\gcd(di,dj)^{d[\gcd(i,j,k) = 1]}\\
&= \prod_d \prod_{i=1}^{A/d} \prod_{j=1}^{B/d} \prod_{k=1}^{C/d}(d\gcd(i,j))^{d[\gcd(i,j,k) = 1]}\\
&= \prod_d \prod_{i=1}^{A/d} \prod_{j=1}^{B/d} (d\gcd(i,j))^{\sum_{k=1}^{C/d}d[\gcd(i,j,k) = 1]}\\
&= \prod_d \prod_{i=1}^{A/d} \prod_{j=1}^{B/d} (d\gcd(i,j))^{\sum_{k=1}^{C/d}d\sum_{g|\gcd(i,j,k)}\mu(g)}\\
&= \prod_d \prod_g\prod_{i=1}^{A/gd} \prod_{j=1}^{B/gd} (d\gcd(gi,gj))^{\mu(g)\sum_{k=1}^{C/gd}gd}\\
&= \prod_T \prod_{g\mid T}\prod_{i=1}^{A/T} \prod_{j=1}^{B/T} (T\gcd(i,j))^{\mu(T/g)\sum_{k=1}^{C/T}T}\\
&= \prod_T \prod_{g\mid T}\prod_{i=1}^{A/T} \prod_{j=1}^{B/T} (T\gcd(i,j))^{T\mu(T/g)\sum_{k=1}^{C/T}}\\
&= \prod_T \prod_{g\mid T}\prod_{i=1}^{A/T} \prod_{j=1}^{B/T} (T\gcd(i,j))^{T\mu(T/g)\left \lfloor C\over T \right \rfloor}\\
&= \prod_T \prod_{g\mid T}\prod_{i=1}^{A/T} \prod_{j=1}^{B/T} (T\gcd(i,j))^{T\mu(T/g)\left \lfloor C\over T \right \rfloor}\\
&= (\prod_T \prod_{g\mid T}\prod_{i=1}^{A/T} \prod_{j=1}^{B/T} T^{T\mu(T/g)\left \lfloor C\over T \right \rfloor})(\prod_T \prod_{g\mid T}\prod_{i=1}^{A/T} \prod_{j=1}^{B/T} \gcd(i,j)^{T\mu(T/g)\left \lfloor C\over T \right \rfloor})\\
\end{align*}
\]
先看左边:
\[\begin{align}
&\ \ \ \ \prod_T \prod_{g\mid T}\prod_{i=1}^{A/T} \prod_{j=1}^{B/T} T^{T\mu(T/g)\left \lfloor C\over T \right \rfloor}\\
&= \prod_T \prod_{g\mid T} T^{\sum_{i=1}^{A/T} \sum_{j=1}^{B/T}T\mu(T/g)\left \lfloor C\over T \right \rfloor} \\
&= \prod_T \prod_{g\mid T} T^{T\mu(T/g)\left\lfloor A\over T\right\rfloor\left\lfloor B\over T\right\rfloor\left\lfloor C\over T\right\rfloor} \\
&=\prod_TT^{\sum_{g\mid T}T\mu(T/g)\left\lfloor A\over T\right\rfloor\left\lfloor B\over T\right\rfloor\left\lfloor C\over T\right\rfloor} \\
&=\prod_TT^{id\otimes\mu\left\lfloor A\over T\right\rfloor\left\lfloor B\over T\right\rfloor\left\lfloor C\over T\right\rfloor} \\
&=\prod_TT^{\varphi(T)\left\lfloor A\over T\right\rfloor\left\lfloor B\over T\right\rfloor\left\lfloor C\over T\right\rfloor} \\
\end{align}
\]
还是一个整除分块 + 欧拉筛。
再来看右边:
\[\begin{align}
&\ \prod_T \prod_{g\mid T}\prod_{i=1}^{A/T} \prod_{j=1}^{B/T} \gcd(i,j)^{T\mu(T/g)\left \lfloor C\over T \right \rfloor}\\
&= \prod_T \prod_{g\mid T}\prod_d d^{\sum_{i=1}^{A/dT} \sum_{j=1}^{B/dT} [i\perp j]T\mu(T/g)\left \lfloor C\over T \right \rfloor}\\
&= \prod_T \prod_{g\mid T}\prod_d\prod_k d^{\mu(k)T\mu(T/g)\left \lfloor C\over T \right \rfloor\sum_{i=1}^{A/kdT} \sum_{j=1}^{B/kdT}}\\
&= \prod_T \prod_{g\mid T}\prod_L\prod_{d|L} d^{\mu(L/d)T\mu(T/g)\left \lfloor C\over T \right \rfloor\sum_{i=1}^{A/LT} \sum_{j=1}^{B/LT}}\\
&= \prod_T \prod_{g\mid T}\prod_L\prod_{d|L} d^{\mu(L/d)T\mu(T/g)\left\lfloor C\over T\right\rfloor\left\lfloor A\over LT\right\rfloor\left\lfloor B\over LT\right\rfloor}\\
&= \prod_T\prod_L\prod_{d|L}\prod_{g\mid T} d^{\mu(L/d)T\mu(T/g)\left\lfloor C\over T\right\rfloor\left\lfloor A\over LT\right\rfloor\left\lfloor B\over LT\right\rfloor}\\
&= \prod_T\prod_L\prod_{d|L}d^{\sum_{g\mid T}T\mu(T/g)\mu(L/d)\left\lfloor C\over T\right\rfloor\left\lfloor A\over LT\right\rfloor\left\lfloor B\over LT\right\rfloor}\\
&= \prod_T\prod_L\prod_{d|L}d^{\varphi(T)\mu(L/d)\left\lfloor C\over T\right\rfloor\left\lfloor A\over LT\right\rfloor\left\lfloor B\over LT\right\rfloor}\\
&= \prod_T\prod_L(\prod_{d|L}d^{\mu(L/d)})^{\left\lfloor A\over LT\right\rfloor\left\lfloor B\over LT\right\rfloor\varphi(T)\left\lfloor C\over T\right\rfloor}\\
\end{align}
\]
中间的还是可以欧拉筛,外层乍一看有两个 \(\prod\),但实际上是整出分块套整除分块,所以加起来是 \(O(\sqrt[3\over4] n\log n)\).
竣工!