zoukankan      html  css  js  c++  java
  • 数论

    【逆元】: 若 a*b=1(%p) 则a是b在%p意义下的逆元。  则在%p意义下  一个数 除以a就等价于乘b

     两种求逆元方法:1、若p为质数时,则有性质则a^(p-1)=1(%p) 。   即a*a^(p-2)=1(%p)。   所以a的逆元就是a^(p-2)

               2、exgcd(a,b,x,y) 可求 ax+by=c=gcd(a,b)  若a,b互质 则可求a%b下的逆元 (可以证明,扩展欧几里得 的运算过程 x,y不会超过max(a,b))

    威尔逊定理: 当且仅当p为质数时,有  (p-1)! ≡ p-1 ≡ -1 (%p)

    因为 1~ p-1  中,除了  1和p-1 , 其余的都能两两配对、互为逆元。

    欧拉定理

      对于互质的整数x,p,xφ(p) ≡ 1 (%p)

    广义欧拉定理

      对于任意整数x,p, 若n>=φ(p)  ,则 xn ≡ xn%φ(p)+φ(p)  (%p)。

      对比普通欧拉定理,如x=3,p=6,  30=1,  3= 3= 3= ... = 3

    【Lucas定理】:{

      求C(n,m)在%p下的值    (p是质数)    —— Lucas(n,m,p)=c(n%p,m%p)*Lucas(n/p,m/p,p)

      为什么要求 p是质数?  因为Lucas证明中 要用到  (1+a)^p=(1+a^p)(%p)这个p为质数才有的性质   因为x^p=x(%p)

     }

    实际上 求大组合数 真正用的是 求 n!%p  复杂度 是跟p的质因数分解有关的  p=ai^bi(1<=i<=k)  则复杂度应该是 ai^bi 的最大值

     

     写了个模板贴这 。。虽然我不怎么用模板。。但是求大组合数是真心麻烦。。
    夏令时记录

    【中国剩余定理(孙子定理)】{

      给出以下的一元线性同余方程组:
      
      假设整数m1,m2, ... ,mn两两互质,则对任意的整数:a1,a2, ... ,an,方程组有解,并且通解可以用如下方式构造得到:
      设
         ——  M
    是整数m1,m2, ... ,mn的乘积
             ——  Mi是除了mi以外的n- 1个整数的乘积。
           (在%mi下)
      则同余方程组 的通解形式为
          
      那么在模M的意义下,方程组只有一个解:
      
    }
     
     
    【BSGS & exBSGS】
     求a^x = b (%p)   gcd(a,p)=1
     考虑分块,设S=sqrt(p),
       a^(kS-t) = b
     然后预处理 b* a^t  ,再暴枚k,求得x
     
     exBSGS: 针对  gcd(a,p)≠1
      a^x = b (%p)
      a * a^(x-1) =b (%p)
     [d = gcd(a,p)]
      (a/d) * a^(x-1) = (b/d) ( %(p/d) )
      然后递归子问题
     
     
  • 相关阅读:
    Qt实战6.万能的无边框窗口(FramelessWindow)
    Qt实战5.如何获取USB设备信息?
    Qt实战4.简单封装的文件监控
    Qt实战3.Qt仿Win10风格界面
    Linux下使用脚本让程序顺序启动
    项目经验1.软件的开发过程
    Qt实战2.老生常谈的文件传输
    mysql导入txt文件
    linux离线安装python3
    mysql知识点
  • 原文地址:https://www.cnblogs.com/cyz666/p/6698512.html
Copyright © 2011-2022 走看看