zoukankan      html  css  js  c++  java
  • 狄利克雷卷积 && 莫比乌斯反演

    狄利克雷卷积 && 莫比乌斯反演

    狄利克雷卷积

    数论函数及其运算

    数论函数是指定义域是正整数,值域是一个数集的函数。

    加法,逐项相加,即((f+h)(n)=f(n)+h(n)​)

    数乘,这个数和每一项都相乘,即 ((xf)(n)=x·f(n)​)

    狄利克雷卷积

    定义两个数论函数的狄利克雷卷积 (*:​)

    (t=f*g​),则(t(n)=sum_{d|n}^{}f(d)·g(frac{n}{d})​),又或者写成(t(n)=sum_{ij=n}f(i)cdot g(j)​)

    卷积性质

    1. 交换律(f*g=g*f)
    2. 结合律((f*g)*h=f*(g*h))
    3. 分配律((f+g)*h=f*h+g*h)
    4. 单位元(epsilon*f=f​),其中(epsilon=[n=1]​)
    5. 逆 元: 对于每个(f(1) ot=0)(f),都存在一个(g),使得(f*g=epsilon)(g)(f)的逆。

    积性函数

    定义不再重复。

    常见的积性函数

    1.(phi(n)=nprod_{i=1}^{k}{frac{p_i-1}{p_i}})

    2.(id^k(n)=n^k​),特别的记(I(n)=id^0(n)=1, id(n)=id^1(n)=n​)

    3.(epsilon(n)=[n=1]​)

    4.(mu(n)=cases{0,n存在两个或以上相同质因子\ (-1)^k,n不存在两个或以上相同质因子},k为质因子个数​)

    积性函数性质

    1.积性函数的狄利克雷卷积还是积性函数。

    2.积性函数的逆还是积性函数。

    由积性函数的性质可知,通过计算出它在质因子幂处的取值,就可以得到它本身的值。

    例如:(phi(n)=prod_{i=1}^{cnt}phi(p_i^{c_i})​)

    另外,容易发现((phi * I)(p^k)=p^k​),由性质1可得(phi*I=id​)

    莫比乌斯反演

    运用上述知识,从卷积的角度来认识莫比乌斯反演。

    首先重新认识一下(mu​),定义(mu​)(I​)的逆。

    由于(I)是积性的,而(mu)(I)的逆,所以(mu​)也是积性的。

    利用(I*mu=epsilon​),可以得出:

    [mu(p^k)=cases{1 k=0\-1 k=1\0 k>1} ]

    再利用积性函数的性质1,可以得到上面写到的(mu​)函数。

    这个时候,我们顺便发现了一个(phi​)(mu​)的关系:

    [phi=id*I^{-1}=id*mu\ phi(n)=sum_{dmid n}dcdotmu(frac{n}{d}) ]

    进入正题。

    如果数论函数(f,g)满足:

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

    那么,

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

    证明:直接写成卷积形式即可。

    同时存在另外一种形式的莫比乌斯反演:

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

    证明:

    定义新运算((fodot g)(n)=sum_{n|X}f(frac{X}{n})cdot g(X))

    下面先证明:((f*g)odot h=fodot (godot h)​)

    [(fodot (godot h))(n)=sum_{n|X}f(frac{X}{n})sum_{X|P}g(frac{P}{X})h(P)\ =sum_{n|X}sum_{X|P}f(frac{X}{n})g(frac{P}{X})h(P)\ =sum_{n|P}(f*g)(frac{P}{n})h(P)\ =((f*g)odot h)(n) ]

    所以就有

    [g=(mu*I)odot g=muodot(Iodot g)=muodot f ]

    应当注意的是:

    [sum_{n|X}mu(frac{X}{n})cdot f(X) ot=sum_{n|X}mu(X)cdot f(frac{X}{n}) ]

  • 相关阅读:
    线程&进程
    C#入门基础
    .Net GC垃圾收集机制(下)
    .Net GC垃圾收集机制(上)
    GAC的理解及其作用
    C# DES加密,KEY和IV不同设置的写法
    常见加密算法简析
    密码学
    数字签名是什么?(数字证书)
    加密算法和MD5等散列算法的区别
  • 原文地址:https://www.cnblogs.com/Bhllx/p/11566044.html
Copyright © 2011-2022 走看看