莫比乌斯反演


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];
        }
    }
}

你可能感兴趣的:(acm,算法,莫比乌斯,--数学)