zoukankan      html  css  js  c++  java
  • [学习笔记]乘法逆元

    乘法逆元:若\(ab\equiv1(mod\;p)\),则称\(b\)\(a\)\(mod\;p\)意义下的乘法逆元.

    本文介绍乘法逆元的三种求法.

    扩展欧几里得求逆元

    因为\(ab\equiv1(mod\;p)\),所以设\(q\)满足\(ab+pq=1\),

    则可以用扩展欧几里得求关于\(b,q\)的方程\(ab+pq=1\)的一组解,即求出\(b\).

    inline int exgcd(int a,int b,int &x,int &y){
        if(!b){
            x=1;y=0;return a;
        }
        int ret=exgcd(b,a%b,y,x);
        y-=a/b*x;return ret;
    }
    inline int inver{
        r=exgcd(a,p,b,q);
        if(r!=1) return -1;
        return b;
    }
    

    费马小定理求逆元

    因为\(a^{p-1}\equiv1(mod\;p)(gcd(a,p)=1)\),所以\(a\;\times\;a^{p-2}\equiv1(mod\;p)\),

    \(a^{p-2}\)\(a\)\(mod\;p\)意义下的逆元.

    typedef long long ll;
    inline ll power(ll x,ll k){
        ll ret=1;
        while(k){
            if(k&1) ret=ret*x%p;
            x=x*x%p;k>>=1;
        }
        return ret;
    }
    inline ll inver{
        return power(a,p-2);
    }
    

    线性求逆元

    \(re[i]\)表示\(i\)\(mod\;p\)(\(p\)为质数)意义下的逆元。

    \(re[i]=\begin{cases}1&i=1\\-p/i\;\times\;re[p\;mod\;i]&i>1\\\end{cases}\)

    证明:
    因为\((p/i)\;\times\;i+p\;mod\;i=p\),
    所以\((p/i)\;\times\;i+p\;mod\;i\equiv0(mod\;p)\)
    所以\((p/i)\;\times\;i\equiv-p\;mod\;i(mod\;p)\)
    所以\(-p/i\;\equiv\;p\;mod\;i\times\;i^{-1}(mod\;p)\)
    所以,

    \(\begin{split} &-(p/i)\;\times\;re[p\;mod\;i]\\ \equiv&-(p/i)\times(p\;mod\;i)^{-1}\\ \equiv&(p\;mod\;i)\;\times\;i^{-1}\times(p\;mod\;i)^{-1}\\ \equiv&\;i^{-1}(mod\;p)\\ \end{split}\)

    typedef long long ll;
    inline ll inver{
        re[1]=1;
        for(ll i=2,mul;i<=a;++i){
            re[i]=-p/i*re[p%i]%p;
            if(re[i]<0){
                mul=(0-re[i])/p+1;
                re[i]=(re[i]+mul*p)%p;
            }
        }
        return re[a];
    }
  • 相关阅读:
    hdu 4002 Find the maximum
    hdu 2837 坑题。
    hdu 3123
    zoj Treasure Hunt IV
    hdu 2053 Switch Game 水题一枚,鉴定完毕
    poj 1430 Binary Stirling Numbers
    hdu 3037 Saving Beans
    hdu 3944 dp?
    南阳oj 求N!的二进制表示最低位的1的位置(从右向左数)。
    fzu 2171 防守阵地 II
  • 原文地址:https://www.cnblogs.com/AireenYe/p/Inverse.html
Copyright © 2011-2022 走看看