zoukankan      html  css  js  c++  java
  • 数论

    前言

    数论在OI中还是比较重要的,这些笔记是在课上匆忙记下的,可能不太美观。

    一些约定:在这里整数间除法是向下取整;(a,b)(a,b)代表gcd(a,b)gcd(a,b)

    Problems:

    小凯的疑惑
    solsol:构造
    ax+by=k(a,b>=0)ax+by=k(a,b>=0) 使其无解
    设一组解x1[0,b1],y1>=0x1∈[0,b−1],y1>=0
    k>ababk>ab−a−b
    y1>(kax1)/b=(ababa(b1))/by1>(k−a∗x1)/b=(ab−a−b−a(b−1))/b =1=−1
    y1>=0y1>=0
    k=ababk=ab−a−b是符合条件的最大值

    上帝与集合的正确用法--扩展欧拉定理
    https://www.lydsy.com/JudgeOnline/problem.php?id=3884

    屠龙勇士--扩展中国剩余定理

    f(i)f(i)表示有序三元组(a,b,c)个数,使得abc=ia∗b∗c=i,求出f(1)f(1)~f(n)f(n)
    sol:i=picisol:i=∏pici f(i)=Cci+22f(i)=∏C2ci+2 使用扩展欧拉筛

    数论之神

    Algorithms:

    • 线性推逆元:
      ​ inv[fac[i]]=inv[fac[i+1]](i+1)inv[fac[i]]=inv[fac[i+1]]∗(i+1)
      p=ik+rp=i∗k+r
      ik+r0modpi∗k+r≡0modp
      ikrmodpi∗k≡−rmodp
      r1ki1modpr−1∗k≡−i−1modp
      i1p/iinv[p%i]i−1≡−p/i∗inv[p%i] modpmodp

    • 中国剩余定理
      ExCRT(增量法):若m不互质
      xamodb>x=kb+ax≡amodb−>x=kb+a
      xcmodd>kb+acmodd>kb+pd=cax≡cmodd−>kb+a≡cmodd−>kb+pd=c−a
      条件(ca)|gcd(b,d)(c−a)|gcd(b,d)
      求解后回代即可

    • 埃式筛

    • 欧拉筛-扩展 

    • Miller-Rabi

      费马小定理&&二次剩余

    • Pollard-Rho

      生日攻击

    • 类欧几里得算法
      ​ https://www.cnblogs.com/LLppdd/p/8428349.html

    • BSGS&&ExBSGS

    Other Things:

      1. Ni=11/i=O(logN)∑i=1N1/i=O(logN)
        • Prove:
          下界 1/2 * log N
          Ni=11/i>=1+1/2+1/4+1/4+1/8+1/8+1/8+1/8+...∑i=1N1/i>=1+1/2+1/4+1/4+1/8+1/8+1/8+1/8+...
          上界 log N
          Ni=11/i<=1+1/2+1/2+1/4+1/4+1/4+1/4+...∑i=1N1/i<=1+1/2+1/2+1/4+1/4+1/4+1/4+...
      2. 1/p=O(loglogN)∑1/p=O(loglogN)
      3. 裴蜀定理: (a,b)|d(a,b)|d is equal to ua+vb=d(u,vZ)ua+vb=d(u,v∈Z)
      4. Exgcd:扩展欧几里得Exgcd:
        amodb=aa/bbamodb=a−a/b∗b
        ua+vb=gcd(a,b)ua+vb=gcd(a,b)
        ub+v(amodb)=gcd(a,b)u′b+v′(amodb)=gcd(a,b)
        ub+v(aa/bb)=gcd(a,b)u′b+v′(a−a/b∗b)=gcd(a,b)
        va+(ua/bv)b=gcd(a,b)v′a+(u′−a/b∗v′)∗b=gcd(a,b)
        通解:x0=x+tb/(a,b)x0=x+t∗b/(a,b) y0=yta/(a,b)y0=y−t∗a/(a,b)

      5. (k,m)=d(k,m)=d 且 kakbmodm>abmodm/dka≡kbmodm−>a≡bmodm/d
        Prove:kakbmodm>m|(kakb)>m|k(ab)>(m/d)|(ab)Prove:ka≡kbmodm−>m|(ka−kb)−>m|k(a−b)−>(m/d)|(a−b)

      6. 简化剩余系
        • 所有0<n<=m,(n,m)=10<n<=m,(n,m)=1的n构成了模m的简化剩余系,简称缩系
          记这样n的个数为ϕ(m)ϕ(m)

        • 如果(m,m)=1(m,m′)=1,aa取遍模mm缩系,aa′取遍m'缩系
          那么am+amam′+a′m取遍mmmm′缩系
          • Prove: (a,m)=1,(a,m)=1,(m,m)=1已知(a,m)=1,(a′,m′)=1,(m,m′)=1
            (am,m)=1,(am,m)=1(am′,m)=1,(a′m,m′)=1
            (am+am,m)=1,(am+am,m)=1(am′+a′m,m)=1,(a′m+am′,m′)=1 //加上另一个数的若干倍仍互质
            (am+am,mm)=1(am′+a′m,mm′)=1
          • 所以如果(n,m)=1,ϕ(nm)=ϕ(n)ϕ(m)(n,m)=1,ϕ(nm)=ϕ(n)∗ϕ(m)
        • phi(pe)=(p1)pe1=pe(11/p)phi(pe)=(p−1)∗pe−1=pe∗(1−1/p) p是质数
          • Prove:[1,pe]Prove:[1,pe]中与p不互质的数的个数为pe/p=pe1pe/p=pe−1
            ϕ(pe)=pepe1=pe(11/p)ϕ(pe)=pe−pe−1=pe∗(1−1/p)
        • 计算公式:ϕ(p)=ϕ(pcii)=(pci(11/pi))=n(11/pi)ϕ(p)=∏ϕ(pici)=∏(pic∗(1−1/pi))=n∗∏(1−1/pi)

      7. 欧拉定理 如果(a,m)=1,aphi(m)1modm(a,m)=1,aphi(m)≡1modm
        Prove:Prove:设x取遍m的缩系,则ax取遍m的缩系
        x=axmodm∏x=∏axmodm
        x=xaϕ(m)modm∏x=∏x∗aϕ(m)modm //这样的a有phi(m)个
        由于(x,m)=1(x,m)=1,保证x∏x存在模m意义下的逆元
        所以 aϕ(m)1modmaϕ(m)≡1modm

      8. 费马小定理 如果(a,m)=1(a,m)=1,且m是个质数 am11modmam−1≡1modm

      9. 扩展欧拉定理 如果(a,m)!=1(a,m)!=1 则 abamin(b,b%ϕ(m)+ϕ(m))modmab≡amin(b,b%ϕ(m)+ϕ(m))modm


      10. 如果gcd(a,m)=1gcd(a,m)=1那么最小的正整数使得ax1modmax≡1modm,x称为a模m的阶
        性质:x|ϕ(m)x|ϕ(m)
        Prove:

      11. 原根
        如果g在模m的阶是ϕ(m)ϕ(m),那么称g是模m的原根
        性质: 模m意义下的的原根有ϕ(ϕm)ϕ(ϕm)个

      12. 积性函数
        欧拉函数,莫比乌斯函数,除数函数

      13. 狄利克雷卷积
        满足交换律结合律分配律,可用倍增
        (fg)(n)=d|nf(d)g(n/d)(f∗g)(n)=∑d|nf(d)∗g(n/d)
        如果f,g是积性函数,f*g也是积性函数
        fe=ff∗e=f 单位元:e e(1)=1e(1)=1,其他e(i)=0e(i)=0;

      14. 莫比乌斯函数
        e(n)=d|nmu(d)e(n)=∑d|nmu(d)
        Prove:转化为二项式系数后转化

        ​ 性质: e(n)=mu(n)1e(n)=mu(n)∗1

      15. 莫比乌斯反演
        f(n)=d|ng(d)f(n)=∑d|ng(d)
        g(n)=d|nmu(d)f(n/d)g(n)=∑d|nmu(d)f(n/d)
        Prove:Prove:
        f=g1f=g∗1 mu1=emu∗1=e
        fmu=g1muf∗mu=g∗1∗mu
        fmu=gef∗mu=g∗e
        g=fmug=f∗mu -> g(n)=d|nmu(d)f(n/d)

  • 相关阅读:
    Haskell语言学习笔记(54)Data.Set
    Haskell语言学习笔记(53)Data.Sequence
    正则表达式(Java,C#,C++)
    Haskell语言学习笔记(52)正则表达式
    Haskell语言学习笔记(51)Comonad
    最大获利
    最小生成树
    PIGS
    三维偏序
    <noip2017>列队
  • 原文地址:https://www.cnblogs.com/zjzjzj/p/10316537.html
Copyright © 2011-2022 走看看