线性不定方程与线性同余方程

线性不定方程解法

  • 扩展欧几里得算法:

  考虑求这个不定方程的一个解:
             ax+by=c

  1. 可以证明该不定方程有解的充分必要条件是(a,b) | c。
    证明:(a,b) | a且(a,b) | b,因为c=ax+by,故(a,b) | c。
  2. 于是可以把等式两边同时除上一个(a,b)转化为a,b互质的情况。
  3. 考虑a,b互质的情况。我们现在要解不定方程:
                                                ax+by=c
    先假设我们可以解出:
                                                           bx+(a mod b)y=c
    那么有:
                                            ax1+by1=c,
                                                            bx2+(a-[a/b])y2=c
    对应一下a,b的系数可以得到:
                                                           x1=y2,
                                                                y1=x2-[a/b]y2
    因为互质,所以最后一定能递推到a=1,b=0的情况,因为我们就相当在做辗转相除,而(a,b)=1,这时候不断回代就可以得到x1,y1

   附上代码:
   

void exgcd(int a,int b,int &x,int &y){
    if(b) exgcd(b,a%b,y,x),y-=a/b*x;
    else x=1,y=0;
}
  •  二元一次不定方程:

          形如:
        ax+by=c,a≠0,b≠0
     的不定方程称为二元一次不定方程。

  1. 方程有解当且仅当(a,b) | c时。
  2. 将方程两边除上(a,b)得到a',b'互质的情况,然后用扩展欧几里得算法解出其一个特解,表示为x1,y1
  3. 那么原方程组的通解可以表示为x=x1+(b/(a,b))t,y=y1-(a/(a,b))t    t∈Z。
    证明:由x1,y1可得方程组:
                                                                  a'x+b'y=c',
                                                                  a‘x1+b‘y1=c‘
    两式相减得:
                                                           a'(x-x1)=b'(y1-y)
    因为(a',b')=1,所以x-x1=b‘t,y1-y=a‘t,整理可得x=b’t+x1,y=y1-bt。
  • n元一次不定方程:

         形如: 
                  a1x1+a2x2+ •••• +anxn=c,ai≠0
         的方程称为n元一次不定方程。

  1. 方程有解的充要条件:(a1,a2,•••• ,an)| c。
  2. 引入新变量t1,t2,••••,tn-2将不定方程拆为:
                                                            a1x1+a2x2=d1t1                   d1=(a1,a2)
                                                            d1t1+a3x3=d2t2                    d2=(d1,a3)
                                                            ••••
                                                            dn-3tn-3+an-1xn-1=dn-2tn-2   dn-2=(dn-3,an-1)
                                                            dn-2tn-2+anxn=c
    这n-1个不定方程,将等号右边的t看作常量,去等号左边的t看作是变量,求解最后一个不定方程然后回代t就好了。

一元线性同余方程(组)解法

  • 一元线性同余方程:

    形如:
                 ax Ξ b (mod m)
       的方程称为一元同余方程,其等价形式为:
                                                                          ax-my=b
       用解二元一次不定方程的解法即可解。

  • 一元线性同余方程组:

    形如:
                   x Ξ b1 (mod m1)
                   x Ξ b2 (mod m2)
                   ••••
                   x Ξ bn (mod mn)
         的方程组称为一元线性同余方程组。一般有两种解法。

  • 合并法(exCRT)

   由
                      x Ξ b1 (mod m1)
                      x Ξ b(mod m2)
           可得:
                      x=b1+m1y(*)
                      x=b2+m2y2
   两式相减得到:
         m1y1-m2y2=b1-b2
   若该不定方程无解,则原同余方程组无解。若有解,设其中一个特解为z1,同余方程组的一个特解为x1。
             其通解y1=z1+(m2/(m1,m2))t,带入方程(*)得到:
                   x=b1+m1z1+(m1m2/(m1,m2))t  (**)
   又由特解z1带入方程(*)得到:
                           x1=b1+m1z1
           带入方程(**)得到:
                                          x=x1+(m1m2/(m1,m2))t=x1+lcm(m1,m2)t
      方程等价于:
                                               x Ξ x1 (mod lcm(m1,m2))
      将同余方程不断照这样合并,最后得到的就是原同余方程的解。

  • 中国剩余定理(CRT)

   当m1,m2,•••• ,m两两互质的时候,则对于任意整数b1,b2,•••• ,bn 此同余方程组都有解。且可以通过下面的方法构造解。
   设M=Π1≤i≤nmi,并设Mi=M/mi,设Mi-1是Mi在mod mi意义下的逆元。则同余方程组的解为:
                     x=Σ1≤i≤nbiMi-1Mi       

  证明:对任意mi,都有x mod mi1≤i≤nbiMi-1Mi mod m= bi(根据M的定义,M mod mi为0且除Mi以外其他的Mj中均含有mi,故模mi值也为0,而Mi-1Mi mod mi的值为1)
     这说明x是原同余方程的解。设x1与x2均为原同余方程的解,那么有:
                     x1-x2 Ξ 0 (mod mi)
     因为mi均互质,所以M | x1-x2,所以解均相差k个M,故在Σ1≤i≤nbiMi-1Mi后面加上kM构成x=kM+Σ1≤i≤nbiMi-1Mi
  mi不是两两互质可以拆成两两互质。

转载于:https://www.cnblogs.com/Asika3912333/p/11313006.html

你可能感兴趣的:(线性不定方程与线性同余方程)