zoukankan      html  css  js  c++  java
  • 费马小定理求逆元

    费马小定理求逆元

    费马小定理定义及证明

    image-20201016085335031
    • 为什么每一个(A_i imes a (mod p)) 是独一无二的?

    对于任意两个(A_i imes a)而言, 二者的差值为a的整数倍,而((a,p)=1),因此((A_i,a) \% p) 一定不会得到相同的余数(同余的两个数的差值一定是mod的整数倍)。

    • (forall A_i imes a \% p (i=1,2,...,p-1)) 所构成的序列是((1,2,...,p-1))的一种排列

    因为 (x \% p in [0,p-1]),而已知(A_i imes a (mod p)) 是独一无二的,因此(forall A_i imes a \% p (i=1,2,...,p-1)) 所构成的序列是((1,2,...,p-1))的一种排列。

    • 故得证 $prod_{i=1}^{n} A_i = prod_{i=1}^n (A_i imes a)(mod p) $

    因此((a,p) = 1)(a^{p-1} = 1 (mod p)) (p为素数,gcd(a,p) = 1)

    费马小定理求逆元

    (a imes b = 1 (mod p))(a,b)互为 (mod p)逆元

    由费马小定理(a^{p-1} = 1 (mod p)),因此(a imes a^{p-2} = 1 (mod p)),因此a的逆元为(a^{p-2} (mod p))

    typedef long long ll;
    ll mod = 1e9 + 7;
    inline ll quick_pow(ll base,ll idx){
        ll ans = 1;
        while(idx){
            if(idx & 1){
                ans *= base;
                ans %= mod;
            }
            base *= base;
            base %= mod;
            idx >>= 1;
        }
        return ans;
    }
    
    inline ll inv(ll a){
        return quick_pow(a,mod-2);
    }
    
    ---- suffer now and live the rest of your life as a champion ----
  • 相关阅读:
    maven_常用命令
    tomcat_server.xml常用配置
    tomcat线程池原理
    Tomcat处理HTTP请求原理&线程池
    javaweb-javaScript(一)
    javaweb-html快速入门
    javaweb-css
    javaweb-单元测试与注解
    javaweb-文件的上传下载
    javaweb-jsp开发模式+JSON插件
  • 原文地址:https://www.cnblogs.com/popodynasty/p/13824610.html
Copyright © 2011-2022 走看看