Loading

[笔记] 莫比乌斯反演

积性函数

积性函数:对于任意互质的整数 \(a,b\)\(f(ab)=f(a)f(b)\) 则称 \(f(x)\) 的数论函数。

完全积性函数:对于任意整数 \(a,b\)\(f(ab)=f(a)f(b)\) 的数论函数。

  • 常见的积性函数:\(\varphi,\mu,\sigma,d\)

  • 常见的完全积性函数:\(\epsilon,I,id\)

    \(\epsilon(n) = [n=1], I(n) = 1, id(n) = n\)

狄利克雷卷积

\(f, g\) 是两个数论函数,它们的狄利克雷卷积卷积是:\((f*g)(n) = \sum \limits _{d | n} f(d) g(\frac{n}{d})\)

性质:满足交换律,结合律

单位元:\(\epsilon\) (即 \(f*\epsilon=f\)

结合狄利克雷卷积得到的几个性质:

  • \(\mu * I = \epsilon\)
  • \(\varphi * I = id\)
  • \(\mu * id = \varphi\)

莫比乌斯函数

定义

\[\mu(n)=\left\{ \begin{aligned} 1\ &(n=1)\\ (-1)^m\ &(m 为质数个数)\\ 0\ &(含有平方因子) \end{aligned} \right. \]

性质
  • \[\lfloor\frac{n}{xy}\rfloor=\lfloor\frac{\lfloor\frac{n}{x}\rfloor}{y}\rfloor \]

  • \[\sum_{d|n}\mu(d)=[n=1] \]

  • \[\sum_{d\mid n}\frac{\mu(d)}{d}=\frac{\varphi(n)}{n} \]

  • \[\sigma_k(nm)=\sum_{x\mid n}\sum_{y\mid n}[\gcd(x,y)=1](\frac{n}{x}\cdot y)^k \]

    \(\sum_{i=1}^n\sum_{j=1}^m\sigma_k(ij)\) 的推式子过程

    公式

    \(f(i), g(i)\) 是两个数论函数:

\[\begin{aligned} &f(i) = \sum_{d\mid i}g(d)\\ \Rightarrow &g(i) = \sum_{d\mid i}\mu(\frac i d)f(d) = \sum_{d\mid i}\mu(d)f(\frac i d) \end{aligned} \]

或者

\[\begin{aligned} &f(i) = \sum_{d = 1}^{\left\lfloor\frac n i\right\rfloor}g(d\cdot i)\\ \Rightarrow &g(i) = \sum_{d = 1}^{\left\lfloor\frac n i\right\rfloor}f(d\cdot i)\mu(d) \end{aligned} \]

例题

\(\gcd(i,j)=k\) 的个数

\[\sum_{i=1}^n\sum_{j = 1}^m[\gcd(i,j)=k] \]

\(f(k)\)\(\gcd(i,j)=k\) 的个数,\(g(k)\)\(\gcd(i,j)\)\(k\) 的倍数的个数,则:

\[g(k) = \sum_{d = 1}^{\left\lfloor\frac n k\right\rfloor}f(d\cdot x) \]

\(g(k)=\lfloor\frac{n}{k}\rfloor\cdot\lfloor\frac{m}{k}\rfloor\),故直接莫反+数论分块求 \(f(k)\) 即可。

\(\gcd(i,j)\)\(k\) 次幂

\[\sum_{i=1}^n\sum_{j=1}^m\gcd(i,j)^k\bmod{10^9+7} \]

用之前的做法将得到:

\[\sum_{d=1}^nd^k\sum_{x=1}^{\lfloor\frac{n}{d}\rfloor}\mu(x)\lfloor\frac{n}{dx}\rfloor\lfloor\frac{m}{dx}\rfloor \]

这样可以做到 \(O(n^{\frac{3}{4}})\),但是还有更快的做法,枚举 \(dx\),记为 \(T\)

\[\sum_{T=1}^n\lfloor\frac{n}{T}\rfloor\lfloor\frac{m}{T}\rfloor\sum_{d\mid T} d^k\cdot\mu(\frac{T}{d}) \]

\(f(n)=\sum_{d\mid n}d^k\mu(\frac{n}{d})\),则只要求出 \(f\) 的前缀和,就可以 \(O(\sqrt n)\) 解决单次询问。

Sengxian 说

这个交换枚举顺序,然后变成积性函数预处理+数论分块的技巧很常见。

posted @ 2022-04-15 09:21  IrisT  阅读(35)  评论(0编辑  收藏  举报