模板莫比乌斯反演

Posted shuraeye

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模板莫比乌斯反演相关的知识,希望对你有一定的参考价值。

一、莫比乌斯反演

我们先来看一个函数:\(F(x)=\sum_d\mid x f(d)\)
我们先枚举一下这个函数的各个值

\(F(1)=f(1)\)

\(F(2)=f(1)+f(2)\)

\(F(3)=f(1)+f(3)\)

\(F(4)=f(1)+f(2)+f(4)\)

\(F(5)=f(1)+f(5)\)

\(F(6)=f(1)+f(2)+f(3)+f(6)\)

\(F(7)=f(1)+f(7)\)

\(F(8)=f(1)+f(2)+f(4)+f(8)\)

于是,我们可以反过来推导出关于\(f(n)\)的关系式

\(f(1)=F(1)\)

\(f(2)=F(2)-F(1)\)

\(f(3)=F(3)-F(1)\)

\(f(4)=F(4)-F(2)-F(1)\)

\(f(5)=F(5)-F(1)\)

\(f(6)=F(6)-F(3)-F(2)+F(1)\)

\(f(7)=F(7)-F(1)\)

\(f(8)=F(8)-F(4)\)

##### 我们可以得到\(F(x)=\sum_d\mid x f(d)\Rightarrow f(x)=\sum_d\mid x\mu(d)F(\fracnd)\qquad\)

##### 其中,我们可以了解到一个新的函数:莫比乌斯函数

二、莫比乌斯函数:\(\mu(x)\)

这是莫比乌斯函数,定义如下
  1. \(x=1\),则 \(\mu(x)=1\)
  2. \(x=p1p2p3\dots pk\),且\(pi\)为互不相同的质数,则有\(\mu(x)=(-1)^k\)
  3. 其他情况中 \(\mu(x)=0\)

    莫比乌斯函数中有用的性质还是挺多的,这里就只列出一个最常用的炒鸡重要的性质

    \(\sum_d\mid n\mu(d)=[n=1]\)

#### 这条性质可以运用到很多与\(gcd\)有关的题目中的推导式子中,非常重要

同时,莫比乌斯函数还是一个积性函数
在这里给大家提及一下积性函数\(f\):既当\(gcd(i,j)=1\)时,\(f(xy)=f(x)f(y)\)的函数叫积性函数
积性函数的性质
  1. \(f(1)=1\)
  2. 积性函数的前缀和也是积性函数

#### 莫比乌斯函数就是借助了它是积性函数的特点,使其可以通过线性筛得到

求莫比乌斯函数\(\mu\)的代码
inline void init()

    mu[1]=1;
    for(int i=2;i<N;i++)
    
        if(!vis[i])
        
            prime[++cnt]=i;
            mu[i]=-1;
        
        for(int j=1;j<=cnt&&i*prime[j]<N;j++)
        
            vis[i*prime[j]]=1;
            if(i%prime[j]==0)break;
            mu[i*prime[j]]=-mu[i];
        
    
莫比乌斯反演和函数可以运用在很多题目的公式推导上,重点还是公式的推导

以上是关于模板莫比乌斯反演的主要内容,如果未能解决你的问题,请参考以下文章

模板莫比乌斯反演

莫比乌斯反演的莫比乌斯反演的性质

莫比乌斯反演模板--Gym 101982B

模板 - 莫比乌斯反演

莫比乌斯反演模板

[模板]莫比乌斯反演