数学板块学习之莫比乌斯

莫比乌斯函数

对于函数 F ( n ) = Σ d ∣ n f ( d ) F(n)=\Sigma_{d|n}f(d) F(n)=Σdnf(d) (其中 d ∣ n d|n dn表示 d d d能够被 n n n整除),根据定义有
F ( 1 ) = f ( 1 ) F(1)=f(1) F(1)=f(1)
F ( 2 ) = f ( 1 ) + f ( 2 ) F(2)=f(1)+f(2) F(2)=f(1)+f(2)
F ( 3 ) = f ( 1 ) + f ( 3 ) F(3)=f(1)+f(3) F(3)=f(1)+f(3)
F ( 4 ) = f ( 1 ) + f ( 2 ) + f ( 4 ) F(4)=f(1)+f(2)+f(4) F(4)=f(1)+f(2)+f(4)
F ( 5 ) = f ( 1 ) + f ( 5 ) F(5)=f(1)+f(5) F(5)=f(1)+f(5)
F ( 6 ) = f ( 1 ) + f ( 2 ) + f ( 3 ) + f ( 6 ) F(6)=f(1)+f(2)+f(3)+f(6) F(6)=f(1)+f(2)+f(3)+f(6)
F ( 7 ) = f ( 1 ) + f ( 7 ) F(7)=f(1)+f(7) F(7)=f(1)+f(7)
F ( 8 ) = f ( 1 ) + f ( 2 ) + f ( 4 ) + f ( 8 ) F(8)=f(1)+f(2)+f(4)+f(8) F(8)=f(1)+f(2)+f(4)+f(8)

于是
f ( 1 ) = F ( 1 ) f(1)=F(1) f(1)=F(1)
f ( 2 ) = F ( 2 ) − F ( 1 ) f(2)=F(2)-F(1) f(2)=F(2)F(1)
f ( 3 ) = F ( 3 ) − F ( 1 ) f(3)=F(3)-F(1) f(3)=F(3)F(1)
f ( 4 ) = F ( 4 ) − F ( 2 ) f(4)=F(4)-F(2) f(4)=F(4)F(2)
f ( 5 ) = F ( 5 ) − F ( 1 ) f(5)=F(5)-F(1) f(5)=F(5)F(1)
f ( 6 ) = F ( 6 ) − F ( 3 ) − F ( 2 ) + F ( 1 ) f(6)=F(6)-F(3)-F(2)+F(1) f(6)=F(6)F(3)F(2)+F(1)
f ( 7 ) = F ( 7 ) − F ( 1 ) f(7)=F(7)-F(1) f(7)=F(7)F(1)
f ( 8 ) = F ( 8 ) − F ( 4 ) f(8)=F(8)-F(4) f(8)=F(8)F(4)

我们可以由 F ( n ) = Σ d ∣ n f ( d ) F(n)=\Sigma_{d|n}f(d) F(n)=Σdnf(d) ,如果已知 F ( n ) F(n) F(n)我们就可以反演推出 f ( n ) f(n) f(n)
公式:
F ( n ) = Σ d ∣ n f ( d ) ⇒   f ( n ) = Σ d ∣ n μ ( d ) F ( n d ) F(n)=\Sigma_{d|n}f(d)\Rightarrow\ f(n)=\Sigma_{d|n}\mu(d)F(\frac{n}{d}) F(n)=Σdnf(d) f(n)=Σdnμ(d)F(dn)
其中的 μ ( d ) \mu(d) μ(d)即为莫比乌斯函数,定义为

  1. d = 1 d=1 d=1 μ ( d ) = 1 \mu(d)=1 μ(d)=1
  2. d = p 1 p 2 p 3   ⋯   p k d=p_{1}p_{2}p_{3}\ \cdots\ p_{k} d=p1p2p3  pk,其中 p i p_{i} pi为互异素数,则 μ ( d ) = ( − 1 ) k \mu(d)=(-1)^{k} μ(d)=(1)k
  3. 其他情况 μ ( d ) = 0 \mu(d)=0 μ(d)=0

莫比乌斯函数性质

1.对于任意正整数 n n n
Σ d ∣ n μ ( d ) = { 1 n=1 0 n>1 \Sigma_{d|n}\mu(d)= \begin{cases} 1 & \text{n=1}\\ 0 & \text{n>1} \end{cases} Σdnμ(d)={10n=1n>1
2.对于任意正整数 n n n
Σ d ∣ n μ ( d ) d = φ ( n ) n \Sigma_{d|n}\frac{\mu(d)}{d}=\frac{\varphi(n)}{n} Σdndμ(d)=nφ(n)
其中的 φ ( n ) \varphi(n) φ(n)是欧拉函数
3. μ ( d ) 为 积 性 函 数 \mu(d)为积性函数 μ(d),也因为它为积性函数所以可以用线性筛求出

求莫比乌斯函数代码

int prime[maxn],mu[maxn],tot = 0;
bool vis[maxn];
void Mobius(int n){
    me(vis,false);
    mu[1] = 1;
    for(int i = 2; i <= n; ++i){
        if(!vis[i]) prime[++tot] = i,mu[i] = -1;
        for(int j = 1; j <= tot & i*prime[j] <= n; ++j){
            vis[i*prime[j]] = true;
            if(i%prime[j] == 0){
                mu[i*prime[j]] = 0;
                break;
            }
            mu[i*prime[j]] = -mu[i];
        }
    }
}

莫比乌斯反演

公式:
F ( n ) = Σ d ∣ n f ( d ) ⇒   f ( n ) = Σ d ∣ n μ ( d ) F ( n d ) F(n)=\Sigma_{d|n}f(d)\Rightarrow\ f(n)=\Sigma_{d|n}\mu(d)F(\frac{n}{d}) F(n)=Σdnf(d) f(n)=Σdnμ(d)F(dn)
F ( n ) = Σ n ∣ d f ( d ) ⇒   f ( n ) = Σ n ∣ d μ ( d n ) F ( d ) F(n)=\Sigma_{n|d}f(d)\Rightarrow\ f(n)=\Sigma_{n|d}\mu(\frac{d}{n})F(d) F(n)=Σndf(d) f(n)=Σndμ(nd)F(d)
证明:
f ( n ) = Σ d ∣ n μ ( d ) F ( n d ) = Σ d ∣ n μ ( d ) Σ k ∣ n d f ( k ) = Σ k ∣ n f ( k ) Σ d ∣ n k μ ( d ) f(n)=\Sigma_{d|n}\mu(d)F(\frac{n}{d})=\Sigma_{d|n}\mu(d)\Sigma_{k|\frac{n}{d}}f(k)=\Sigma_{k|n}f(k)\Sigma_{d|\frac{n}{k}}\mu(d) f(n)=Σdnμ(d)F(dn)=Σdnμ(d)Σkdnf(k)=Σknf(k)Σdknμ(d)
因为:
Σ d ∣ n μ ( d ) = { 1 n=1 0 n&gt;1 \Sigma_{d|n}\mu(d)=\begin{cases}1 &amp; \text{n=1}\\0 &amp; \text{n&gt;1}\end{cases} Σdnμ(d)={10n=1n>1
所以只有 n = k n=k n=k
Σ k ∣ n f ( k ) Σ d ∣ n k μ ( d ) = f ( k ) = f ( n ) \Sigma_{k|n}f(k)\Sigma_{d|\frac{n}{k}}\mu(d)=f(k)=f(n) Σknf(k)Σdknμ(d)=f(k)=f(n)

做题方法(套路):
一般题目都是将其转换为 g c d ( x , y ) = 1 gcd(x,y)=1 gcd(x,y)=1的形式求解
f ( x ) = ∑ i = 1 n ∑ j = 1 m [ g c d ( i , j ) = = x ] f(x)=\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)==x] f(x)=i=1nj=1m[gcd(i,j)==x]
F ( x ) = ∑ x ∣ d f ( d ) F(x)=\sum_{x|d}^{}f(d) F(x)=xdf(d)
所以
F ( x ) = ∑ x ∣ d ∑ i = 1 n ∑ j = 1 m [ g c d ( i , j ) = = d ] = ∑ i = 1 n ∑ j = 1 m [ x ∣ g c d ( i , j ) ] = ⌊ n x ⌋ ⌊ m x ⌋ F(x)=\sum_{x|d}^{}\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)==d]=\sum_{i=1}^{n}\sum_{j=1}^{m}[x|gcd(i,j)]=\lfloor\cfrac{n}{x}\rfloor\lfloor\cfrac{m}{x}\rfloor F(x)=xdi=1nj=1m[gcd(i,j)==d]=i=1nj=1m[xgcd(i,j)]=xnxm
从而
f ( x ) = ∑ x ∣ d μ ( d x ) F ( d ) = ∑ x ∣ d μ ( d x ) ⌊ n d ⌋ ⌊ m d ⌋ f(x)=\sum_{x|d}^{}\mu(\cfrac{d}{x})F(d)=\sum_{x|d}^{}\mu(\cfrac{d}{x})\lfloor\cfrac{n}{d}\rfloor\lfloor\cfrac{m}{d}\rfloor f(x)=xdμ(xd)F(d)=xdμ(xd)dndm
一般求 f ( 1 ) f(1) f(1)
f ( 1 ) = ∑ d = 1 m i n ( n , m ) μ ( d ) ⌊ n d ⌋ ⌊ m d ⌋ f(1)=\sum_{d=1}^{min(n,m)}\mu(d)\lfloor\cfrac{n}{d}\rfloor\lfloor\cfrac{m}{d}\rfloor f(1)=d=1min(n,m)μ(d)dndm

套路2:
由莫比乌斯定理得
[ g c d ( i , j ) = = 1 ] = ∑ d ∣ g c d ( i , j ) μ ( d ) = ∑ d ∣ i , d ∣ j μ ( d ) [gcd(i,j)==1]=\sum_{d|gcd(i,j)}^{}\mu(d)=\sum_{d|i,d|j}^{}\mu(d) [gcd(i,j)==1]=dgcd(i,j)μ(d)=di,djμ(d)
所以
a n s = ∑ i = 1 n ∑ j = 1 m ∑ d ∣ i , d ∣ j μ ( d ) ans=\sum_{i=1}^{n}\sum_{j=1}^{m}\sum_{d|i,d|j}^{}\mu(d) ans=i=1nj=1mdi,djμ(d)
提贡献:
a n s = ∑ d = 1 m i n ( n , m ) μ ( d ) ∑ d ∣ i n ∑ d ∣ j m 1 ans=\sum_{d=1}^{min(n,m)}\mu(d)\sum_{d|i}^{n}\sum_{d|j}^{m}1 ans=d=1min(n,m)μ(d)dindjm1

a n s = ∑ d = 1 m i n ( n , m ) μ ( d ) ⌊ n d ⌋ ⌊ n d ⌋ ans=\sum_{d=1}^{min(n,m)}\mu(d)\lfloor\cfrac{n}{d}\rfloor\lfloor\cfrac{n}{d}\rfloor ans=d=1min(n,m)μ(d)dndn
小性质:
d ( n m ) = ∑ i ∣ n ∑ j ∣ m [ g c d ( i , j ) = = 1 ] d(nm)=\sum_{i|n}\sum_{j|m}[gcd(i,j)==1] d(nm)=injm[gcd(i,j)==1]
其中 d ( x ) 表 示 x 的 约 数 的 个 数 d(x)表示x的约数的个数 d(x)x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值