数论

前言

数论在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)

原文地址:https://www.cnblogs.com/zjzjzj/p/10316537.html