zoukankan      html  css  js  c++  java
  • noip级别数论?

    TAT快noip了才开始去接触数论(真心不敢学。。)这里做一下整理吧(都是些定义之类的东西= =)

    欧几里德:gcd(a,b)=gcd(b,a%b);具体证明见百科?

    扩展欧几里德:

      求a*x+b*y=gcd(a,b);

      因为gcd(a,b)=gcd(b,a%b)即gcd(b,a-a/b*b);

      所以可以递归求解:

        递归到b=0时显然gcd为a,x=1,y=0;

        已知b*x'+(a-a/b*b)*y'=gcd(b,a-b/b*b)=gcd(a,b)=a*x+b*y;

        b*x'+(a-a/b*b)*y' = a*y'+b*(x'-a/b*y');

        所以x=y';y=x'-a/b*y';

      然后解显然不只一个。。设我们一开始求出来的解为x0,y0

      x = x0 + b/Gcd(a, b) * k
        y = y0 -  a/Gcd(a, b) * k(k为任意整数)(代入一下就知道正确性了。。)

      有的时候(似乎很多时候?)gcd(a,b)=1.....

      各种低级应用:

      不定方程向:

        求x,y,使a*x+b*y=c;(只有c为gcd(a,b)的倍数时才有解)

        解就是a*x+b*y=gcd(a,b)的每个解乘上c/gcd(a,b)。。或者说是a/gcd(a,b)*x+b/gcd(a,b)=1的每个解乘上c

       解模线性方程(最基本的同余方程)ax ≡ b(mod p)

         因为a*x mod p实际就是a*x-a*x/p*p..所以等价于解不定方程 a*x+p*y=b

      乘法逆元向:
        满足b*k≡1 (mod p)的k值就是b关于p的乘法逆元。
        应用:
          求(a/b) mod p的值时,a过大等等感人情况(比如求模意义下较大的组合数或者卡特兰数或者是奇怪的数学题?)
          求b关于p的乘法逆元k,(a*k) mod p的结果与(a/b) mod p等价
        证明:

          已求出b*k≡1(mod p);
          即b*k=p*x+1;

          所以k=(p*x+1)/b;
          a*k=a/b*(p*x+1)
          (a*k) mod p

           =(a/b*(p*x+1))mod p
           =(a/b*p*x+a/b)mod p
           =(a/b)mod p

        求逆元:

          a*k≡1(mod p)即a*k=p*x+1
          相当于解不定方程a*k-p*x=1(a,p已知)

    素数线性筛:

      万年大坑现在才来填QAQ。。虽然以前用埃氏筛法似乎姿势好可以混过去?

      埃氏筛法的缺点是合数可能会被多次筛到(取决于它有多少个质因数)

      现在对于每个数i,

      1、若i为素数,枚举不大于i的素数j,则i*j为合数(此时不可能有重复)
      2、 i为合数,则设i=p1^a1*p1*a2*p3^a3。。。。(整数分解)
      枚举所有小于或等于p1的素数j,i*j为合数
      不会重复计算是因为每个数都是被它的最小质因数筛到的

    欧拉函数线性筛:
      设a为n的某个质因数,
      1、若n/a整除a,则phi(n)=phi(n/a)*a(每个与n/a互质的数也与a互质)
      2、 若n/a不整除a,则phi(n)=phi(n/a)*(a-1)(因为a是素数,phi(a)=a-1,gcd(a,n/a)=1,由欧拉函数的积性phi(n)=phi(n/a)*phi(a)......)

     感觉今年noip考数论的话我就得直接退役了QAQ

    UPD:2333今年没数论。。然而还是不会写的题还是不会TAT

  • 相关阅读:
    python测试开发django-39.xadmin详情页面布局form_layout
    Linux学习20-nohup挂后台启动django
    python测试开发django-38.多对多(ManyToManyField)查询
    python测试开发django-37.外键(ForeignKey)查询
    因子分解机模型简介
    Social regularizations
    MathType插入带序号公式的两种方法
    通俗解释遗传算法及其Matlab实现
    矩阵中路径数目问题
    Word绘制跨行表格
  • 原文地址:https://www.cnblogs.com/czllgzmzl/p/4941278.html
Copyright © 2011-2022 走看看