莫比乌斯反演入门
莫比乌斯反演入门
莫比乌斯是什么,能吃么?
换句话来讲,对于一些函数 \(f(n)\),如果很难直接求出它的值,而容易求出其倍数和或约数和 \(g(n)\),那么可以通过莫比乌斯反演简化运算,求得 \(f(n)\)的值。
1. 前置芝士
积性函数
定义
- 定义域为正整数集的函数称为数论函数
- 满足 \(f(ab) = f(a)f(b)\)(其中 $ gcd(a,b) = 1 $的数论函数称为积性函数
- 完全积性函数对 \(a,b\) 没有互质限制
- 示例函数
-
- 积性函数:\(\varphi(n)\)(欧拉函数)、$ \mu(n) $(莫比乌斯函数)
- 完全积性函数:
-
- 单位函数 $ \varepsilon(n) = [n = 1] $, $[P] $ 为示性函数,\(P\) 为真时取 1,否则取 0 )
- 恒等函数 $ {id}(n) = n $
- 常函数 ${1}(n) = 1 $(注意与普通常数 1 区分,这里是数论函数表示 )
狄利克雷(\(Dirichlet\))卷积的定义:
对两个数论函数 \(f(x)\)、\(g(x)\),狄利克雷卷积结果\(h(x)\) 定义为
性质:
交换律:$ f * g = g * f $
结合律:$(f * g) * h = f * (g * h) $
分配律:$ (f + g) * h = f * h + g * h $
等式性质$f = g $ 充要条件是 \(f * h = g * h\)(\(h(1) \neq 0\) )
莫比乌斯函数
\(\mu\)是莫比乌斯函数
定义:
其中\(k\)为\(n\)的本质不同的质因子数
性质
莫比乌斯函数是积性函数,\(\mu(x*y)=\mu(x)*\mu(y)\)
特殊的当\([gcd(i,j)=1] = \sum_{d \mid gcd(i,j)}\mu(d)\)
\(\sum_{d\mid n}\frac {\mu(d)}{d}=\frac {\varphi(n)}{n}\),即 \(n=\sum_{d\mid n} \varphi(d)\),即 \(\varphi*1= id\)
线性筛
由于\(\mu\)函数是积性函数,因此可以线性筛莫比乌斯函数(线性筛基本可以球所有积性函数,尽管方式不尽相同)。
void getMu() {
mu[1] = 1;
for (int i = 2; i <= n; ++i) {
if (!flg[i]) p[++tot] = i, mu[i] = -1;
for (int j = 1; j <= tot && i * p[j] <= n; ++j) {
flg[i * p[j]] = 1;
if (i % p[j] == 0) {
mu[i * p[j]] = 0;
break;
}
mu[i * p[j]] = -mu[i];
}
}
}
例题,例题,我们需要更多的例题
多组数据
根据容斥原理可拆解成4个部分,
每个部分为
容易发现,并不好求,但是我们很好得出
根据
所以
化简得:
式子可以数论分块求解。
时间复杂度\(\Theta(N+T \sqrt n)\)
P1447 [NOI2010] 能量采集 - 洛谷 (luogu.com.cn)
这个跟上面差不多
SP5971 LCMSUM - LCM Sum - 洛谷 (luogu.com.cn)
多组样例,求
很容易的化简得
然后我们可以枚举gcd
然后正常的把\(gcd(i,n)=d\)换成\(gcd(i/d,n/d)=1\) ,同时将\(i=i/d\)
同时使得\(d=n/d\)
即\(\sum_{i=1}^{d} i[gcd(i,d)=1]\)该部分等于\(d在[1,d]范围内互质数数值之和\)
就是\(\frac {\varphi(d)d}2(d=1时为1)\)
证明当\(d>1时,\varphi(d)总是偶数,与d互质的数总是成对出现,i与d互质,d-i与d也互质,他它们的合是d,并有\varphi(d)/2对\)
所以说答案是
再加上预处理,时间复杂度\(\Theta(nlogn+T)\)

浙公网安备 33010602011771号