• 逆元板子


    逆元板子

    杨辉三角

    杨辉三角第(i)行第(j)列((i)从0开始)即为(C_i^j)

    for(int i=0;i<=n;++i){
        C[i][0]=1;
        for(int j=1;j<=i;++j)
            C[i][j]=(C[i-1][j]+C[i-1][j-1])%MOD;
    }
    

    快速幂逆元

    由费马小定理得(a imes a^{p-2}equiv 1(mod;p))(其中(a,p)互质且(p)为质数),故除(a)等价于乘以(a^{p-2}),使用快速幂求出(a^{p-2})即可

    LL pow_mod(LL a, LL b, LL mo){
        LL ret = 1;
        while(b){
            if(b & 1) ret = (ret * a) % mo;
            a = (a * a) % mo;
            b >>= 1;
        }
        return ret;
    }
    

    线性逆元

    inv[1]=1;
    for(int i=2;i<=n;++i){
        inv[i]=-(p/i)*inv[p%i];
        inv[i]=(inv[i]%p+p)%p;
    }
    

    拓展欧几里得

    不同于以费马小定理为原理的快速幂,拓展欧几里得中(p)不需要一定为质数

    void Exgcd(ll a, ll b, ll &x, ll &y) {
        if (!b) x = 1, y = 0;
        else Exgcd(b, a % b, y, x), y -= a / b * x;
    }
    int main() {
        ll x, y;
        Exgcd (a, p, x, y);
        x = (x % p + p) % p;
        printf ("%d
    ", x); //x是a在mod p下的逆元
    }
    
  • 相关阅读:
    DFT测试OCC电路介绍
    ANR原理分析
    Android系统启动流程分析
    Linux15_Linux基础1
    tf之手写体识别
    1
    MongoDB 4.4 以后版本安装Database Tools 工具
    11
    MongoDB 备份与还原mongodump
    nginx 静态文件部署 极简版
  • 原文地址:https://www.cnblogs.com/santiego/p/11615954.html
Copyright © 2020-2023  润新知