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)

  • 相关阅读:
    164 Maximum Gap 最大间距
    162 Find Peak Element 寻找峰值
    160 Intersection of Two Linked Lists 相交链表
    155 Min Stack 最小栈
    154 Find Minimum in Rotated Sorted Array II
    153 Find Minimum in Rotated Sorted Array 旋转数组的最小值
    152 Maximum Product Subarray 乘积最大子序列
    151 Reverse Words in a String 翻转字符串里的单词
    bzoj3994: [SDOI2015]约数个数和
    bzoj 4590: [Shoi2015]自动刷题机
  • 原文地址:https://www.cnblogs.com/zjzjzj/p/10316537.html
Copyright © 2011-2022 走看看