• 相关数学理论和公式(同余问题)


    基本定理与概念


    形如(aequiv b(mod;m))的式子称为同余式

    1. (aequiv b(mod;m))当且仅当(m;|;(a-b))
    2. (aequiv b(mod;m))(bequiv c(mod;m)),则(aequiv c(mod;m))(传递性)
    3. (aequiv b(mod;m)),则
      • (a+cequiv b+c(mod;m))
      • (a-cequiv b-c(mod;m))
      • (a imes cequiv b imes c(mod;m))
    4. (aequiv b(mod;m))(cequiv d(mod;m))
      • (ax+cy=bx+dy(mod;m))
      • (a imes cequiv b imes d(mod;m))
      • (a^nequiv b^n(mod;m))
      • (f(a)equiv f(b)(mod;m))
    5. (aequiv b(mod;m)),且(d;|;m),则(aequiv b(mod;d))

    线性同余方程


    形如(axequiv b(mod;m))的包含未知数的同余式称为一元线性同余方程

    1. (gcd(a,m)=d),如果(d;|;b),则方程有d个模m不同的解,否则无解
    2. 求解一元线性同余方程需要使用扩展欧几里德算法,过程如下:
      (a=d imes a_0)(m=d imes m_0),方程变为:
      (a_0x+m_0y=b;/;d)
    void exgcd(ll a,ll b,ll &d,ll &x,ll &y){
         if(b==0){
             x=1;y=0;
             d=a;return;
         }else{
             exgcd(b,a%b,d,x,y);
             ll tmp=x;
             x=y;
             y=tmp-(a/b)*y;
         }
    }
    int solve(int a,int b,int m){
         exgcd(a,m,d,x,y);
         if(b%d) return -1;  //无解
         x=x*(b/d)%m;
         for(int i=1;i<=d;i++) ans[i]=(x+(i-1)*m/d)%m;
    }
    

    设同余方程组为

    [egin {aligned} x&=r_1(mod;a_1)\ x&=r_2(mod;a_2)\ x&=r_3(mod;a_3)\ x&=r_4(mod;a_4)\ &cdots\ x&=r_5(mod;a_5)\ end {aligned} ]

    求解一元线性同余方程组(小于m的非负整数解),求解x,例题【POJ 2891】

    void exgcd(ll a,ll b,ll &d,ll &x,ll &y){
         if(b==0){
             x=1;y=0;
             d=a;
         }else{
             exgcd(b,a%b,d,y,x),y-=x*(a/b);
         }
    }
    int a[N],r[N],n;
    ll solve(){
        ll ta=a[1],tr=r[1],x,y,d;
        for(int i=2;i<=n;i++){
            exgcd(ta,a[i],d,x,y);
            if((r[i]-tr)%d) return -1;
            x=(r[i]-tr)/d*x%(a[i]/d);
            tr+=x*ta;ta=ta/d*a[i];
            tr%=ta;
         }
         return tr>0?tr:tr+ta;
    }
    
  • 相关阅读:
    CMake学习笔记
    右键添加"在此处打开命令窗口"菜单
    设置默认python模块源
    添加到附加组
    Unity宏处理
    挂载windows共享文件夹
    MacOS长按无效问题
    中文Locale
    笔记本用作无线路由器
    C# Winfrom iTextSharp 导出pdf 带二维码 表格嵌套 简单Dome
  • 原文地址:https://www.cnblogs.com/zsyacm666666/p/7196143.html
Copyright © 2020-2023  润新知