zoukankan      html  css  js  c++  java
  • 欧拉函数的特殊性质

    欧拉函数与莫比乌斯函数的关系

    根据积性函数关系 (oldsymbol varphi=oldsymbol mu*oldsymbol {id}) 得到

    (displaystyle oldsymbol varphi(n)=sum_{dmid n}oldsymbol mu(d)cdot({nover d})=ncdotsum_{dmid n}{oldsymbol mu(d)over d})

    故得出推论 (displaystyle {oldsymbol varphi(n)over n}=sum_{dmid n}{oldsymbol mu(d)over d})

    或简记为 (oldsymbol varphicdot oldsymbol{id}^{-1}=(oldsymbol mucdot oldsymbol {id}^{-1})*oldsymbol I)


    互质数和

    设小于等于 (n) 的正整数中,与 (n) 互质的数的和为 (s(n))

    不难列出关系式 (displaystyle s(n)=sum_{i=1}^ni[gcd(i,n)=1])

    由莫比乌斯反演可得

    (displaystyle s(n)=sum_{i=1}^ni[gcd(i,n)=1]=sum_{i=1}^nisum_{dmid gcd(i,n)}oldsymbol mu(d)=sum_{dmid n}oldsymbol mu(d)sum_{i=1}^ni[dmid i]=sum_{dmid n}oldsymbol mu(d)sum_{i=1}^{nover d}id[1mid i]=sum_{dmid n}oldsymbol mu(d)dsum_{i=1}^{nover d}i)

    由等差数列求和公式可得 (displaystyle sum_{i=1}^ni={n(n+1)over 2})

    故代入可得 (displaystyle s(n)=sum_{dmid n}oldsymbol mu(d)d{({nover d})cdot ({nover d}+1)over 2}={nover 2}cdot [sum_{dmid n}oldsymbol mu(d)cdot ({nover d})+sum_{dmid n}oldsymbolmu(d)]={nover 2}cdot [(oldsymbol mu*oldsymbol {id})(n)+(oldsymbol mu*oldsymbol I)(n)])

    代入 (oldsymbol mu*oldsymbol {id}=oldsymbol varphi,oldsymbol mu*oldsymbol I=oldsymbol varepsilon)(displaystyle s(n)={n(oldsymbol varphi+oldsymbol varepsilon)(n)over 2})

    一般而言,考虑到 (oldsymbol varepsilon(n)=[n=1]= egin{cases} 1,n=1 \ \ 0,n eq 1 end{cases})

    故代入 (s(n))(s(n)= egin{cases} {1cdot(1+1)over 2}=1,n=1 \ \ {ncdot oldsymbol varphi(n)+ncdot 0over 2}={ncdot oldsymbol varphi(n)over 2},n eq 1 end{cases})


    (s(n)) 的快速求法

    由于 (s(n)) 本身不具备积性,故在 (n) 较大时无法直接求解

    但考虑到 (displaystyle s(n)={n(oldsymbol varphi+oldsymbol varepsilon)(n)over 2})(displaystyle s={oldsymbol {id}cdot(oldsymbol varphi+oldsymbol varepsilon)over 2})

    (2s=oldsymbol {id}cdot(oldsymbol varphi+oldsymbol varepsilon)=oldsymbol {id}cdotoldsymbol varphi+oldsymbol {id}cdot oldsymbol varepsilon)

    同样考虑到 ((oldsymbol {id}cdot oldsymbol varepsilon)(n)=ncdot[n=1]= egin{cases} 1cdot 1=1,n=1 \ \ ncdot 0=0,n eq 1 end{cases}=oldsymbol varepsilon(n))

    代入即可移项得 (2s-oldsymbol varepsilon=oldsymbol {id}cdotoldsymbol varphi)

    求解 (s) 的前缀和只需求解 (oldsymbol f=oldsymbol {id}cdotoldsymbol varphi) 的前缀和 (F),再利用公式 (s={oldsymbol f+oldsymbol varepsilonover 2}) 即可求出 (s) 的前缀和 (S={F+1over 2})

    已知前缀和后,利用前缀和的差分即可求出 (s)

    而至于求解 (oldsymbol f) 的前缀和 (F),这里提供用于杜教筛与 min_25 筛的思路:

    杜教筛

    [(oldsymbol f*oldsymbol {id})(n)=sum_{dmid n} (oldsymbol {id}cdot oldsymbol varphi)(d)cdot oldsymbol {id}({nover d})cdot 1=sum_{dmid n}dcdot oldsymbol varphi(d)cdot {nover d}cdot oldsymbol I({nover d})=ncdot (oldsymbol varphi*oldsymbol I)(n)=ncdot oldsymbol {id}(n)=n^2 ]

    再利用 (displaystyle sum_{i=1}^ni={n(n+1)over 2},sum_{i=1}^ni^2={n(2n+1)(n+1)over 6}) 即可求解

    min_25 筛

    [oldsymbol f(p)=oldsymbol varphi(p)cdot oldsymbol {id}(p)=(p-1)cdot p=p^2-p=(oldsymbol {id}^2-oldsymbol {id})(p),pin Prime ]

  • 相关阅读:
    Java 并发核心编程
    JavaScript中的类型(二)
    IEEE 754 规定的双精度浮点数表示
    javascript 上传多个附件(struts)
    给自己放放松
    C语言快速排序
    Mac付费软件免费获取
    Keil4 uVision软件生成hex文件
    Mac苹果电脑安装虚拟机
    数据结构是什么
  • 原文地址:https://www.cnblogs.com/JustinRochester/p/13224145.html
Copyright © 2011-2022 走看看