默比乌斯函数
本文是swm_sxt作为高中生敲的第一篇日志……
说到默比乌斯函数μ(n)啊,先回忆一下以前敲过的一个东西:欧拉函数φ(n)表示的是1~n之间有多少个数与n互质。那么如果我们把它简化一下:当n为r个不同素数的乘积时μ(n)=(-1)^r,当n为有平方因数时,μ(n)=0,特殊地当n=1时,μ(n)=1。
说到默比乌斯函数μ(n)啊,先回忆一下以前敲过的一个东西:欧拉函数φ(n)表示的是1~n之间有多少个数与n互质。那么如果我们把它简化一下:当n为r个不同素数的乘积时μ(n)=(-1)^r,当n为有平方因数时,μ(n)=0,特殊地当n=1时,μ(n)=1。
首先,显然,当(a,b)=1时((a,b)表示a,b的最大公因数),μ(ab)=μ(a)*μ(b)。哈,正确性是显然的:
设a,b的标准分解式为:a=p1^c1*p2^c2*p3^c3^…pk^ck,b=q1^d1*a2^d2*q3^d3…ql^dl,因为(a,b)=1,所以数组p,q中一定没有相等的两个数字。如果有平方因数,μ(ab) 自然就等于0了,否则μ(ab)就跟k+l的奇偶性相关咯……
另一个性质:Σμ(d) (d|n)=0(n>1),证明如下:
记n=p1^c1*p2^c2*p3^c3^…pk^ck,显然:
Σμ(d) (d|n)=μ(x)(x为p的任意组合的乘积)=1+ΣC(i,k)(-1)^i=(1-1)^k=0。
在OI中,应该说这东西是很有用的,生成方式嘛,跟欧拉函数一个样,一边线性筛,一边在筛除合数的同时生成μ(n)。
默比乌斯反演:
对于正整数集上两个函数:f(n),g(n),如果f(n)=Σg(d) (d|n),则g(n)=Σ μ(d)f(n/d)(d|n),反之亦然。
证明啊……很显然,μ(d)f(n/d)是有正有负的,然后容斥一下,就抵消了嘛,具体我就不写了。(本来是要写的,结果旁边一群人载歌载舞,吵成DOG,瞬间不想写了……)
就这样吧……
完……
设a,b的标准分解式为:a=p1^c1*p2^c2*p3^c3^…pk^ck,b=q1^d1*a2^d2*q3^d3…ql^dl,因为(a,b)=1,所以数组p,q中一定没有相等的两个数字。如果有平方因数,μ(ab) 自然就等于0了,否则μ(ab)就跟k+l的奇偶性相关咯……
另一个性质:Σμ(d) (d|n)=0(n>1),证明如下:
记n=p1^c1*p2^c2*p3^c3^…pk^ck,显然:
Σμ(d) (d|n)=μ(x)(x为p的任意组合的乘积)=1+ΣC(i,k)(-1)^i=(1-1)^k=0。
在OI中,应该说这东西是很有用的,生成方式嘛,跟欧拉函数一个样,一边线性筛,一边在筛除合数的同时生成μ(n)。
默比乌斯反演:
对于正整数集上两个函数:f(n),g(n),如果f(n)=Σg(d) (d|n),则g(n)=Σ μ(d)f(n/d)(d|n),反之亦然。
证明啊……很显然,μ(d)f(n/d)是有正有负的,然后容斥一下,就抵消了嘛,具体我就不写了。(本来是要写的,结果旁边一群人载歌载舞,吵成DOG,瞬间不想写了……)
就这样吧……
完……