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];
    }
  • 相关阅读:
    Flex 布局语法教程
    2017年总结的前端文章——border属性的多方位应用和实现自适应三角形
    html 里 checkbox里 只要选中就会自动添加checked=“checked”么?
    jQuery遍历DOM
    checkbox 全选操作
    ubuntu下安装jdk
    ubuntu下安装nodejs
    nodejs express route 的用法
    聊天室业务分析
    一般使用场景
  • 原文地址:https://www.cnblogs.com/AireenYe/p/Inverse.html
Copyright © 2011-2022 走看看