莫比乌斯反演

前置知识:积性函数。

定义:

一个函数 \(f\),若 \(\forall\gcd(a,b)=1\),都有 \(f(a)\times f(b)=f(a\times b)\),则它是积性函数。

一个函数 \(f\),若 \(\forall(a,b)\),都有 \(f(a)\times f(b)=f(a\times b)\),则它是完全积性函数。

正题

狄利克雷卷积

先放一张图方便下文理解(copy zyf):

接下来给出狄利克雷卷积的定义:

对于两个函数 \(f\)\(g\),它们的狄利克雷卷积 \(f * g\) 为:

\[(f * g)(n) = \sum_{d|n}f(d)\times g(\frac{n}{d}) \]

关于狄利克雷卷积的一些性质:

\(f\) 为积性函数,则:

\(h(x)=f(x^p)\) 为积性函数。

\(h(x)=f(x)g(x)\) 为积性函数。

\(h(x)=(f * g)(x)\) 为积性函数。

证明我也不会,背就完了。

接下来通过狄利克雷卷积把上图函数结合起来:(\(f\) 为任意积性函数)

\(id * 1=\sigma\)

\(\varphi * 1=id\)

\(\epsilon * f=f\)

插入:
容易发现 \(\epsilon\) 为单位元卷积函数,因此可以给出两个函数 \(f\)\(g\) 在狄利克雷卷积中互逆的定义为 \(f * g=\epsilon\)

\(1 * \mu=\epsilon\)

从这里容易发现 \(1\)\(\mu\) 互逆,所以容易得出一个式子 \(f * 1=g\iff f=g * 1\)

同时这实际上就是莫比乌斯反演的一种形式。喵~

莫比乌斯反演

一般形式:

\(f(n)=\sum_{d|n}g(d)\)

\(g(n)=\sum_{d|n}f(d)\mu{\frac{n}{d}}\)

也就是 \(f=g * 1~~~g=f * \mu\)

先给一道例题:

\[\sum_{i=1}^{n}\sum_{j=1}^{n}ij\gcd(i,j)\mod p \]

其中 \(p\) 为质数。

解:原式
$$=~\sum_{d=1}^{n}d \sum_{i=1}^{n} \sum_{j=1}^{n} ij [\gcd(i,j)=d]$$
$$=~\sum_{d=1}^{n} d^3 \sum_{i=1}^{\left \lfloor \frac{n}{d} \right \rfloor} \sum_{j=1}^{\left \lfloor \frac{n}{d} \right \rfloor} ij [\gcd(i,j)=1]$$
$$=~\sum_{d=1}^{n} d^3 \sum_{i=1}^{\left \lfloor \frac{n}{d} \right \rfloor} \sum_{j=1}^{\left \lfloor \frac{n}{d} \right \rfloor} ij \sum_{t|\gcd(i,j)}\mu(t)$$
$$=~\sum_{d=1}^{n} d^3 \sum_{t=1}^{\left \lfloor \frac{n}{d} \right \rfloor} \mu(t)t^2 \sum_{i=1}^{\left \lfloor \frac{n}{td} \right \rfloor} \sum_{j=1}^{\left \lfloor \frac{n}{td} \right \rfloor} ij$$
\(T=td\),则原式:
$$=~\sum_{T=1}^{n} T^2 (\sum_{i=1}^{\left \lfloor \frac{n}{T} \right \rfloor}i)^2 \sum_{d|t}\mu{}\frac{T}{d}d$$
$$=~\sum_{T=1}^{n} T^2 \varphi(T)(\sum_{i=1}^{\left \lfloor \frac{n}{T} \right \rfloor}i)^2$$
对于:
$$(\sum_{i=1}^{\left \lfloor \frac{n}{T} \right\rfloor}i)^2$$
如果设 \(S=\left \lfloor \frac{n}{T} \right\rfloor\),则由小公式可以得到该式子等价于
$$S ^ 2 (S+1) ^ 2 \over 4$$
然后就可以过掉了。

而对于:
$$\sum_{T=1}^{n} T^2 \varphi(T)$$
我们先设一个函数 \(f= T^2 \varphi(T)\)\(g=T^2=id^2(T)\),那么根据狄利克雷卷积可以得到:
$$(f * g)(n)=~\sum_{d|n} (\varphi(d) id^2(d)) (\frac{n}{d}) ^ 2 $$
$$=~\sum_{d|n} (\varphi(d) d^2) (\frac{n}{d}) ^ 2 $$
$$=~d^2\sum_{d|n} \varphi(d)$$
$$=~n^3$$
把这个作为一个结论。

然后我们开始对原式变形:
\(h\) 表示原函数式,那么可以得到递推式:
$$h(n)=~\frac{\sum_{i=1}^n (f * g)(i) - \sum_{i=2}^n g(i)h(\left \lfloor \frac{n}{i} \right\rfloor)}{g(1)}$$
根据刚才得到的结论可以得到:
$$h(n)=~\frac{\sum_{i=1}^n i^3 - \sum_{i=1}^n g(i)h(\left \lfloor \frac{n}{i} \right\rfloor)}{g(1)}$$
$$=~\frac{ \frac{n ^ 2 (n+1) ^ 2} {4} - \frac{n(n+1)(2n+1)}{6}h(\left \lfloor \frac{n}{i}\right\rfloor)}{g(1)}$$
然后推导部分就做完了,后面的杜教筛之类的算法就不提了。

莫反在OI中主要是把在规定时间内无法求解的问题转化为可以求解的(但好像考的不多),总之好好学。

最后放一个链接,里面是莫比乌斯反演的常见变形,大家入门以后可以去看看。

posted @ 2024-07-18 10:20  Redamancy_Lydic  阅读(16)  评论(1编辑  收藏  举报