莫比乌斯反演

莫比乌斯反演

积性定义: \(φ(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\)

5bp94xos.png (300×424)

例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)\).

竣工!

posted @ 2025-02-08 16:00  花子の水晶植轮daisuki  阅读(48)  评论(0)    收藏  举报
https://blog-static.cnblogs.com/files/zouwangblog/mouse-click.js