zoukankan      html  css  js  c++  java
  • 数论概论 第8章 同余式

    数论概论 第8章 同余式

    主要讨论如何求解同余式 $ax equiv c (mod m) $

    显然判断此同余式是否有解相当于判断线性方程 (ax-my=c) 是否有解

    我们对于(ax+by = c) 类型的线性方程当且仅当(gcd(a,b)|c) 时有解

    求解方式可以通过下面的代码求解(拓展欧几里得)

    //ax+by = gcd(a,b)
    long long extend_gcd(long long a,long long b,long long &x,long long &y)
    {
        if(a==0&&b==0) return -1;
        if(b==0) {x = 1; y = 0; return a;}
        long long d = extend_gcd(b,a%b,y,x);
        y -= a/b*x;
        return d;
    }
    

    (g = gcd(a,m))

    • 如果g不整除c则此方程无解
    • (g mid c) 则改同余式恰好有g个不同的解

    注:线性同余方程最重要的情形是(gcd(a,m) = 1) 在这种情形下同余式恰好只有一个解

    且c = 1时 此时的x称为a对m的逆元

    逆元求法如下:

    long long extend_gcd(long long a,long long b,long long &x,long long &y)
    {
        if(a==0&&b==0) return -1;
        if(b==0) {x = 1; y = 0; return a;}
        long long d = extend_gcd(b,a%b,y,x);
        y -= a/b*x;
        return d;
    }
    ll getInv(int a,int mod)
    {
        ll x,y;
        ll d=extend_gcd(a,mod,x,y);
        return d==1?(x%mod+mod)%mod:-1;
    }
    
    我现在最大的问题就是人蠢而且还懒的一批。
  • 相关阅读:
    web fileReader API
    placeholer 改变颜色
    在选择标签中遇到的问题
    选择标签
    cesh
    sui 无限下拉分页
    调用百度地图 API 移动地图时 maker 始终在地图中间 并根据maker 经纬度 返回地址
    两种轮播图实现方式
    CSS多行文本溢出省略显示
    从Python看Web架构的发展
  • 原文地址:https://www.cnblogs.com/pot-a-to/p/10963174.html
Copyright © 2011-2022 走看看