zoukankan      html  css  js  c++  java
  • 一个线性求逆元的方法

    其实逆元的线性求法和之前提到的两种筛法没什么关系,我更喜欢称这个做法叫逆元的递推求法。但是考虑到贾志鹏的线性筛PPT里提到了逆元的线性求法,我就在这里也说下吧。

    逆元其实不是函数,但是我们可以把它看成函数f(x),逆元(函数)的积性性质也是非常显然的,我就不赘述了。

    实际上x和x-p在模p意义下的逆元是相同的,因此我们只需要筛出1...p1的逆元就够了。

    我们假设模数p=ki+r,r<i,1<ip

    ki+r0(modp)

    两边同时乘上i1r1

    kr1+i10(modp)
    i1kr1(modp)
    i1pi(pmodi)1(modp)

    于是我们可以推出i的逆元f(i)=[pif(pmodi)]modp

    所以逆元可以直接通过递推的方式求出来。

    逆元的线性求法代码:

    for(LL i=2;i<MOD;i++)
        rev[i]=(MOD-MOD/i)*rev[MOD%i]%MOD;
    

     由于加上一个MOD没什么影响,所以正好通过这样我们能得到大于零的结果

  • 相关阅读:
    Git 操作
    SVN
    一维数组
    常见的数学方法
    常用事件
    function函数
    while;do while; for循环
    JS中的变量提升
    关于js的单双引号嵌套问题
    db.collection is not a function
  • 原文地址:https://www.cnblogs.com/linkzijun/p/6347860.html
Copyright © 2011-2022 走看看