莫比乌斯反演

莫比乌斯反演

前置知识:数论分块

莫比乌斯函数

定义莫比乌斯函数\(\mu (x)\),如果\(x\)的某个质因数出现超过一次,则\(\mu(x)=0\),否则\(\mu(x)=(-1)^k\),其中\(k\)是\(n\)的本质不同的质因子个数。

形式化地,

\[\mu(x)= \cases{ 1~~~~~~~~~~~~~~~~~n=1\\ (-1)^k ~~~~~~~~~{n=p_1p_2\cdots p_k}\\ 0 ~ ~ ~~~~~~~~~~~~~~~ other } \]

其中\(p_i\)为不同的质数。DDD

莫比乌斯函数是积性函数,并且有一个重要性质是:\(\sum_{d|n}\mu(d)=\cases{1,~~~~n=1\\0,~~~~n>1}\)

证明:\(\sum_{d|n}\mu(d)\)其实等价于\(\sum_{i=0}^{k}C_k^i(-1)^k\),相当于在\(k\)个质因数中选出\(i\)个,每一种\(i\)的答案的和。

莫比乌斯反演

设\(g(n)\)和\(f(n)\)是定义在非负整数集合上的两个函数,并且满足\(g(n)=\sum_{d|n}f(d)\),那么

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

证明:

\[\begin{aligned} &\sum_{d|n}\mu(d)g(\frac{n}{d})\\ =& \sum_{d|n}\mu(d)\sum_{k|\frac{n}{d}}f(k)\\ =& \sum_{d|n}\sum_{k|\frac{n}{d}}f(k)\mu(d)\\ =& \sum_{k|n}\sum_{d|\frac{n}{k}}f(k)\mu(d)\\ =&\sum_{k|n}f(k)\sum_{d|\frac{n}{k}}\mu(d)\\ =& f(n) \end{aligned} \]

莫比乌斯反演还有另外一种形式:如果\(f(n)=\sum_{n|d}g(d)\),那么

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

几种常见的莫比乌斯反演

\[g(n)=\cases{1 &n=1\\0 &n>1}\\ f(n)=\mu(n)\\ \]

上面的式子中 取\(f(n)=\mu(n)\),则有\(g(n)=\sum_{d|n}f(d)\),满足莫比乌斯反演的条件,可以进行反演,\(f(n)=\sum_{d|n}\mu(d)g(\frac{n}{d})=\mu(n)\)

\[g(n)=n\\ f(n)=\phi(n) \]

欧拉函数\(\phi(n)\)的一个性质是:\(n=\sum_{d|n}\phi(d)\)。带入\(f(n)=\sum_{d|n}\mu(d)g(\frac{n}{d})\)得

\[\phi(n)=\sum_{d|n}\mu(d)\frac{n}{d} \]

\(\mu(n)\)是个积性函数,可以用线性筛预处理出来。

例题:

1.求\([1,n]\)和\([1,m]\)上互质的数的个数

\[\begin{aligned} &\sum_{i=1}^{n}\sum_{j=1}^{m}[gcd(i,j)==1]\\ =&\sum_{i=1}^{n}\sum_{j=1}^{m}\sum_{d|gcd(i,j)}\mu(d)\\ =&\sum_{i=1}^{n}\sum_{j=1}^{m}\sum_{d|i \&d|j}\mu(d)\\ =&\sum_{d=1}^{min(n,m)}\mu(d)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}1\\ =&\sum_{d=1}^{min(n,m)}\mu(d)\times\lfloor\frac{n}{d}\rfloor\times\lfloor\frac{m}{d}\rfloor \end{aligned} \]

然后数论分块求解就行哩

上一篇:2018/Province_Java_A/1/分数


下一篇:百鸡百钱:实现一百块买一百只鸡,公鸡1只5块钱,母鸡1只3块钱,小鸡3只一块钱