莫比乌斯反演

来源:互联网 发布:win10无法磁盘优化 编辑:程序博客网 时间:2024/04/29 22:49

PoPoQQQppt

定义

反演

已知函数F(x)是可以通过f(x)变换而来的,现在求f(x)通过F(x)的变换。
这样的逆变换称之为
举个栗子,F(x)=f(x)2,则f(x)=±F(x)

莫比乌斯反演

规定了F(x)到f(x)的变换关系,然后求逆变换。已知

F(x)=dxf(d)
f(x)=dxμ(d)F(xd)
其中μ(d)可以当作是一个运算符,也被称为
μ(d)=1(1)r0d = 1d=p1p2...pr,pielse

可以先给一个例子直观地感受一下这个变换:

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(1)=F(1)f(2)=F(2)F(1)f(3)=F(3)F(1)f(4)=F(4)F(2)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)...
μ(d)F(d)前面的符号位,甚至可以是0,表示不需要此项。

另一种形式

莫比乌斯公式还有一种常用的形式较为常用:
F(d)=dxf(x),则f(d)=dxμ(xd)F(x)
x应该有个范围的~


证明

已知F(x)=dxf(d),求证f(x)=dxμ(d)F(xd)

证明:dxμ(d)F(xd)=dx[μ(d)kxdf(k)]=kx[f(k)dxkμ(d)]=f(x)
详细证明见莫比乌斯函数的证明


性质

  1. μ(x)是积性函数。
    其实x必须是无素数因子的平方项时才可行。

  2. dxμ(d)={1,0,x=1x>1
    证明x>1时的情况:当x的素因子有r个时,从r个里面选取k个乘积为d,dxμ(d)=C0x+C1x(1)1+C2x(1)2...+Cxx(1)x=(11)x=0

  3. dxμ(d)d=ϕ(x)x
    看起来是个诡异的性质,实际就是将F(x)=x,f(x)=ϕ(x)代入其中。当然,前提是n=dnϕ(d)欧拉函数性质4给出了证明。


应用

线性筛法

int mobi[N]={0,1}, num[N], prim[N], cnt = 0;void set(){    for(int i = 0;i < N;i++) num[i] = 1;    for(int i = 2;i < N;i++)    {        if(num[i])        {            prim[cnt++] = i;            mobi[i] = -1;        }        for(int j = 0;j < cnt && prim[j]*i < N;j++)        {            num[prim[j]*i] = 0;            if(i % prim[j] == 0)            {                mobi[prim[j]*i] = 0;                break;            }            mobi[prim[j]*i] = -mobi[i];        }    }}
0 0