莫比乌斯反演
前置知识:积性函数。
定义:
一个函数 \(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\) 为积性函数,则:
\(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\)。
先给一道例题:
其中 \(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中主要是把在规定时间内无法求解的问题转化为可以求解的(但好像考的不多),总之好好学。
最后放一个链接,里面是莫比乌斯反演的常见变形,大家入门以后可以去看看。