【数论】莫比乌斯函数

莫比乌斯函数

    莫比乌斯函数!?提到这个东西你会不会想到一个大神级的玩意:莫比乌斯反演

      莫比乌斯函数其实很简单,非常非常简单……

好了,步入正题吧……

       我们定义一个函数M,参数为x,函数内容如下:

X=X1^P1*X2^P2*……*Xa^Xk

       那么这个式子到底是用来干什么的呢?

       我们使X1、X2、X3都存在一个素数集合中,那么它们必定都是素数

       则P1、P2、P3……为指数,因为对于任何数x(x>=2),都可以写成这种形式。

       比如我们举几个例子:

       12=3*4

       12=3*2*2

       12=2^2*3^1

        

       2=2

       2=2^1

       好,理解了这个我们设定P这个数组中间均>=1(小于1就没有意义了)

       我们先把这个x按如上方式分解

       我们设定,如果这里面的最大指数大于1了,那么我们的M(x)=0;

       如果最大指数等于1,则所有的指数都是1,从而M(x)=(-1)^k

       注意:M(1)=1!

       根据如上结论,M(x)=-1(x为素数)

                            M(x^n)=0(x为素数,n为大于1任意值)

        不难看出如上结论是正确的。

        因为如果x是一个素数的话,那么X1直接等于x,则P1直接为1,最终答案(-1)^1:-1

        如果这是一个素数的次方,那么那么X1直接等于x,p1赋值为n,如上n大于1,根据原理答案为0

        

那,它到底是干神马用的呢?

        我们发现,M(1)=1,M(2)=-1,M(3)=-1,M(5)=-1,M(6)=1,M(10)=1。

        有没有发现,能写成两个素数相乘的答案都是1

                          能写成三个素数相乘的答案都是-1

                                           ……

        于是我们只需要将它反过来,就可以求解容斥原理啦!

        还有求逆元的一些各种用途,有兴趣的同学可以看看。

时间: 2024-11-07 05:27:49

【数论】莫比乌斯函数的相关文章

数论线性筛总结 (素数筛,欧拉函数筛,莫比乌斯函数筛,前n个数的约数个数筛)

线性筛 线性筛在数论中起着至关重要的作用,可以大大降低求解一些问题的时间复杂度,使用线性筛有个前提(除了素数筛)所求函数必须是数论上定义的积性函数,即对于正整数n的一个算术函数 f(n),若f(1)=1,且当a,b互质时f(ab)=f(a)f(b),在数论上就称它为积性函数,若a,b不互质也满足的话则称作完全积性函数,下面说明每个筛子是怎么筛的. 最基础的是素数筛,其它三个筛都是以素数筛为前提 素数筛 void get_prime() { int pnum = 0; for(int i = 2;

数论入门——莫比乌斯函数,欧拉函数,狄利克雷卷积,线性筛,莫比乌斯反演,杜教筛

一个菜鸡对数论的一点点理解... 莫比乌斯函数 定义函数\(\mu(n)\)为: 当n有平方因子时,\(\mu(n)=0\). 当n没有平方因子时,\(\mu(n)=(-1)^{\omega(n)}\),\(\omega(n)\)表示n不同质因子的个数. 性质1: \(\sum_{d|n}\mu(d)=[n=1]\) 证明:我们把n分解质因数,则原式\(=(-1+1)^{\omega(n)}=0\). 因为对于不同的质因子,只有选和不选两种方案,这是一个组合数相加的形式,偶数加奇数减,根据二项式

HDU 6053 TrickGCD 莫比乌斯函数/容斥/筛法

题意:给出n个数$a[i]$,每个数可以变成不大于它的数,现问所有数的gcd大于1的方案数.其中$(n,a[i]<=1e5)$ 思路:鉴于a[i]不大,可以想到枚举gcd的值.考虑一个$gcd(a_1,a_2,a_3…a_n)=d$,显然每个$a_i$的倍数都满足,有$\frac{a_i}{d}$种方案 那么一个d对答案的贡献为\[\prod_{i=1}^{min(a)}{\lfloor\frac{a_i}{d}\rfloor}    \] 但是所有的d计入会有重复情况,考虑容斥,对d进行素数分

51nod1238 最小公倍数之和 V3 莫比乌斯函数 杜教筛

题意:求\(\sum_{i = 1}^{n}\sum_{j = 1}^{n}lcm(i, j)\). 题解:因为是用的莫比乌斯函数求的,所以推导比大部分题解多...而且我写式子一般都比较详细,所以可能看上去很多式子,实际上是因为每一步都写了,几乎没有跳过的.所以应该都可以看懂的. 末尾的\(e\)函数是指的\(e[1] = 1\),\(e[x] = 0(x != 1)\)这样一个函数 \[\sum_{i = 1}^{n}\sum_{j = 1}^{n}lcm(i, j)\] \[\sum_{i

【模版】线性筛(素数,欧拉函数,莫比乌斯函数)

线性筛: 线性筛是一种比较实用的筛法,它与数论中的(完全)积性函数密切相关: (完全)积性函数的定义:对于两个整数 \(x_1\) 和 \(x_2\) ,若有函数\(f(x)\)满足:\(f(x_1x_2)=f(x_1)f(x_2)\),我们称\(f(x)\)为完全积性函数:特殊的:若 \(x_1\) 和 \(x_2\) 一定为两个互质的正整数,我们称\(f(x)\)为积性函数! 而线性筛就是利用了这一性质,将\(f(x)\)用且只用\(x\)最小的那个质因子利用\(f(x_1x_2)=f(x_

莫比乌斯函数与莫比乌斯反演

莫比乌斯函数 定义 莫比乌斯函数\(\mu(n)\),当\(n=1\)时,\(\mu(n)=1\):当\(n>1\)时,设\(n\)的唯一分解式为\(n=p_1^{c_1}\cdots p_k^{c_k}\),则\(\mu(n)\)定义为 \(\mu(n)= \begin{cases} (-1)^k,c_1=c_2=\cdots=c_k=1 \\ 0, \exists\, c_i>1(1\leq i\leq k)\\ \end{cases}\) 性质 \(\sum\limits_{d|n}\m

三行写出莫比乌斯函数(HDU1695)

莫比乌斯函数是可以在三行内写出来的 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const int maxn=1000000; 5 int mu[maxn+10],T; 6 void Mobius(){ 7 for(int d=1,k;d<=maxn;++d) 8 for(mu[1]=1,k=d<<1;k<=maxn;mu[k]=mu[k]-mu[d],k+=d);

【51nod-1239&amp;1244】欧拉函数之和&amp;莫比乌斯函数之和 杜教筛

题目链接: 1239:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1239 1244:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1244 杜教筛裸题,不过现在我也只会筛这俩前缀和... $$s(n)=\sum _{i=1}^{n}f(i)$$ 那么就有: $$\sum_{i=1}^{n}f(i)\lfloor \frac{n}{i} \

莫比乌斯函数&amp;莫比乌斯反演

莫比乌斯函数:http://wenku.baidu.com/view/fbec9c63ba1aa8114431d9ac.html  OrzPoPoQQQ 这个证明过程第三步和第四步一开始没看懂…… 第三步:观察计算左边f(k)的系数,可以看出只要d不大于n/k均可以使μ(d)成为f(k)的系数,那么f(k)的系数就是sigma[d丨(n/k)] μ(d) (方括号内为d的范围) 利用整除的性质,重新组合了一下这几项,相当于对一个多项式重新分组提取因式什么的…… 第四步:利用sigma μ(d)=