已知两个整数 a a a和 b b b,我们观察 a a a的倍数和 b b b的倍数所有可能会得到的结果,也就是说,考察 a x + b y ax+by ax+by所得到的所有可能的结果,其中 x x x和 y y y取整数(可为负整数)。
设 a = 42 , b = 30 a=42,b=30 a=42,b=30, 42 x + 30 y 42x+30y 42x+30y的部分取值结果如下表所示:
仔细观察上表的结果,我们可以发现,表中所有的数值都可以被6整除,即 a x + b y ax+by ax+by的每个数都被 g c d ( a , b ) gcd(a,b) gcd(a,b)整除;
因为 42 x + 30 y = 6 ⋅ ( 7 x + 5 y ) 42x+30y=6\cdot(7x+5y) 42x+30y=6⋅(7x+5y),无论 7 x + 5 y 7x+5y 7x+5y取任何整数, 6 ⋅ ( 7 x + 5 y ) 6\cdot(7x+5y) 6⋅(7x+5y)都能被6整除;
当 7 x + 5 y = 1 7x+5y=1 7x+5y=1时, 42 x + 30 y 42x+30y 42x+30y得到一个最小的正整数解6,即 42 ⋅ 2 + 30 ⋅ 3 = 6 = g c d ( 42 , 30 ) . 42\cdot2+30\cdot3=6=gcd(42,30). 42⋅2+30⋅3=6=gcd(42,30).
于是,我们得到了以下的结论:
定理A 设 a a a和 b b b不全为0,则存在整数x和y使得 x a + y b = g c d ( a , b ) xa+yb=gcd(a,b) xa+yb=gcd(a,b)
使用欧几里得原理来证明上述的定理。证明过程如下:
(1)当 b = 0 b=0 b=0, g c d ( a , b ) = a gcd(a,b)=a gcd(a,b)=a,此时 x = 1 , y = 0 x=1,y=0 x=1,y=0 , x a + y b = g c d ( a , b ) xa+yb=gcd(a,b) xa+yb=gcd(a,b)成立。
(2)当a>b>0时,有
a x 1 + b y 1 = g c d ( a , b ) ax_1+by_1=gcd(a,b) ax1+by1=gcd(a,b);
b x 2 + ( a m o d b ) y 2 = g c d ( b , a m o d b ) bx_2+(a\ mod \ b)y_2=gcd(b,a\ mod \ b) bx2+(a mod b)y2=gcd(b,a mod b);
根据欧几里德原理,有 g c d ( a , b ) = g c d ( b , a m o d b ) gcd(a,b)=gcd(b,a\ mod\ b) gcd(a,b)=gcd(b,a mod b),可知:
a x 1 + b y 1 = b x 2 + ( a m o d b ) y 2 = b x 2 + ( a − ⌊ a ÷ b ⌋ ∗ b ) y 2 ax_1+by_1=bx_2+(a\ mod \ b)y_2=bx_2+(a-\lfloor a\div b\rfloor *b)y_2 ax1+by1=bx2+(a mod b)y2=bx2+(a−⌊a÷b⌋∗b)y2
将上式展开, a x 1 + b y 1 = a y 2 + b ( x 2 − ⌊ a ÷ b ⌋ ∗ y 2 ) ax_1+by_1=ay_2+b(x_2-\lfloor a\div b\rfloor*y_2) ax1+by1=ay2+b(x2−⌊a÷b⌋∗y2)
可得 x 1 = y 2 , y 1 = x 2 − ⌊ a ÷ b ⌋ ∗ y 2 x_1=y_2,y1=x_2-\lfloor a\div b\rfloor*y_2 x1=y2,y1=x2−⌊a÷b⌋∗y2
假设我们已经求出了 x 2 x_2 x2和 y 2 y_2 y2,通过上面的公式我们就得到了求 x 1 x_1 x1和 y 1 y_1 y1的方法。
由 g c d ( a , b ) = g c d ( b , a % b = r 1 ) = g c d ( r 1 , b % r 1 = r 2 ) = g c d ( r 2 , r 1 % r 2 = r 3 ) = . . . = g c d ( r k − 3 , r k − 4 % r k − 3 ) = g c d ( r k − 2 , 0 ) = r k − 1 gcd(a,b)=gcd(b,a\%b=r_1)=gcd(r_1,b\%r_1=r_2)=gcd(r_2,r1\%r_2=r3)=...=gcd(r_{k-3},r_{k-4}\%r_{k-3})=gcd(r_{k-2},0)=r_{k-1} gcd(a,b)=gcd(b,a%b=r1)=gcd(r1,b%r1=r2)=gcd(r2,r1%r2=r3)=...=gcd(rk−3,rk−4%rk−3)=gcd(rk−2,0)=rk−1可知,
使用欧几里德方法计算到最后一步时(即 g c d ( r k − 1 , 0 ) = r k − 1 gcd(r_{k-1},0)=r_{k-1} gcd(rk−1,0)=rk−1),这时 x k = 1 , y k = 0 x_k=1,y_k=0 xk=1,yk=0,通过( x k , y k x_k,y_k xk,yk) 的值就可以依次求出( x k − 1 , y k − 1 x_{k-1},y_{k-1} xk−1,yk−1),( x k − 2 , y k − 2 x_{k-2},y_{k-2} xk−2,yk−2)…( x 3 , y 3 x_3,y_3 x3,y3),( x 2 , y 2 x_2,y_2 x2,y2),( x 1 , y 1 x_1,y_1 x1,y1)的值。计算过程如下图所示:
综上所述,可以证明定理A成立。
例.求线性方程 22 x + 60 y = g c d ( 22 , 60 ) 22x+60y=gcd(22,60) 22x+60y=gcd(22,60)
解:
(1) 22 x 1 + 60 y 1 = g c d ( 22 , 60 ) 22x_1+60y_1=gcd(22,60) 22x1+60y1=gcd(22,60)
(2) 60 x 2 + 20 y 2 = g c d ( 60 , 22 % 60 = 22 ) 60x_2+20y_2=gcd(60,22\%60=22) 60x2+20y2=gcd(60,22%60=22)
(3) 22 x 3 + 16 y 3 = g c d ( 22 , 60 % 22 = 16 ) 22x_3+16y_3=gcd(22,60\%22=16) 22x3+16y3=gcd(22,60%22=16)
(4) 16 x 4 + 6 y 4 = g c d ( 16 , 22 % 16 = 6 ) 16x_4+6y_4=gcd(16,22\%16=6) 16x4+6y4=gcd(16,22%16=6)
(5) 6 x 5 + 4 y 5 = g c d ( 6 , 16 % 6 = 4 ) 6x_5+4y_5=gcd(6,16\%6=4) 6x5+4y5=gcd(6,16%6=4)
(6) 4 x 6 + 2 y 6 = g c d ( 4 , 6 % 4 = 2 ) 4x_6+2y_6=gcd(4,6\%4=2) 4x6+2y6=gcd(4,6%4=2)
(7) = g c d ( 2 , 4 % 2 = 0 ) = 2 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =gcd(2,4\%2=0)=2 =gcd(2,4%2=0)=2,此时 x 7 = 1 , y 7 = 0 x_7=1,y_7=0 x7=1,y7=0
由 x k − 1 = y k , y k − 1 = x k − ⌊ a ÷ b ⌋ ∗ y k x_{k-1}=y_{k},y_{k-1}=x_k-\lfloor a\div b\rfloor*y_k xk−1=yk,yk−1=xk−⌊a÷b⌋∗yk可以求出:
(6) x 6 = y 7 = 0 , y 6 = x 7 − ⌊ 4 ÷ 2 ⌋ ∗ y 7 = 1 x_6=y_7=0,y_6=x_7-\lfloor 4\div 2\rfloor*y_7=1 x6=y7=0,y6=x7−⌊4÷2⌋∗y7=1
(5) x 5 = y 6 = 1 , y 5 = x 6 − ⌊ 6 ÷ 4 ⌋ ∗ y 6 = − 1 x_5=y_6=1,y_5=x_6-\lfloor 6\div 4\rfloor*y_6=-1 x5=y6=1,y5=x6−⌊6÷4⌋∗y6=−1
(4) x 4 = y 5 = − 1 , y 4 = x 5 − ⌊ 16 ÷ 6 ⌋ ∗ y 5 = 3 x_4=y_5=-1,y_4=x_5-\lfloor 16\div 6\rfloor*y_5=3 x4=y5=−1,y4=x5−⌊16÷6⌋∗y5=3
(3) x 3 = y 4 = 3 , y 3 = x 4 − ⌊ 22 ÷ 16 ⌋ ∗ y 4 = − 4 x_3=y_4=3,y_3=x_4-\lfloor 22\div 16\rfloor*y_4=-4 x3=y4=3,y3=x4−⌊22÷16⌋∗y4=−4
(2) x 2 = y 3 = − 4 , y 2 = x 3 − ⌊ 60 ÷ 22 ⌋ ∗ y 3 = 11 x_2=y_3=-4,y_2=x_3-\lfloor 60\div 22\rfloor*y_3=11 x2=y3=−4,y2=x3−⌊60÷22⌋∗y3=11
(1) x 1 = y 2 = 11 , y 1 = x 2 − ⌊ 22 ÷ 60 ⌋ ∗ y 2 = − 4 x_1=y_2=11,y_1=x_2-\lfloor 22\div 60\rfloor*y_2=-4 x1=y2=11,y1=x2−⌊22÷60⌋∗y2=−4
所以方程的一组解为 x ≡ 11 ( m o d 60 ) x≡11 (mod\ 60) x≡11(mod 60)
求解的代码如下:
int exGcd(int a,int b,int &x,int &y) {
if(b==0) {
x = 1;
y = 0;
return a;
}
int r = exGcd(b,a%b,x,y);
t = x;
x = y;
y = t-a/b*y;
return r;
}
定理B 整数 a a a和 b b b互素的充分必要条件是存在整数 x x x和 y y y使得 x a + y b = 1. xa+yb=1. xa+yb=1.
证明:
必要性: 由上述的 [定理A] 可得出,如果 x a + y b = 1 xa+yb=1 xa+yb=1,当 g c d ( a , b ) = 1 gcd(a,b)=1 gcd(a,b)=1时,方程有解。
充分性:
设 d > 0 d>0 d>0且 d d d是 a a a和 b b b的公因子,则有 d ∣ a , d ∣ b → d ∣ x a + y b → d ∣ 1. d|a,d|b \ \ \ \rightarrow d|xa+yb\ \ \ \rightarrow d|1. d∣a,d∣b →d∣xa+yb →d∣1.
再由性质【如果 a ∣ b a|b a∣b且 b ≠ 0 b≠0 b=0,则 ∣ a ∣ ≤ ∣ b ∣ |a|≤|b| ∣a∣≤∣b∣】得出结论, d = 1 d=1 d=1,得证 a a a与 b b b互素.
假如 g c d ( a , b ) = 1 , ( x 1 , y 1 ) gcd(a,b)=1,(x_1,y_1) gcd(a,b)=1,(x1,y1)是方程 a x + b y = 1 ax+by=1 ax+by=1的一个解。
通过 x 1 x_1 x1减去 b b b的倍数和 y 1 y_1 y1加上 a a a的相同倍数,可以得到其它解,也就是说,对于任何整数 k k k,我们得到其它解为 ( x 1 + k b , y 1 − k a ) (x_1+kb,y_1-ka) (x1+kb,y1−ka)( k k k为整数)
a ( x 1 + k b ) + b ( y 1 − k a ) = a x 1 + a k b + b y 1 − b k a = a x 1 + b y 1 = 1. a(x_1+kb)+b(y_1-ka)=ax_1+akb+by_1-bka=ax_1+by_1=1. a(x1+kb)+b(y1−ka)=ax1+akb+by1−bka=ax1+by1=1.
例如 5 x + 3 y = 1 5x+3y=1 5x+3y=1的一个解为 ( − 1 , 2 ) (-1,2) (−1,2),在此基础上可能得到新解 ( − 1 + 3 k , 2 − 5 k ) (-1+3k,2-5k) (−1+3k,2−5k)通过k的值可以得到一些解
. . . , ( − 13 , 22 ) , ( − 10 , 17 ) , ( − 7 , 12 ) , ( − 4 , 7 ) , ( − 1 , 2 ) , ( 2 , − 3 ) . . . ...,(-13,22),(-10,17),(-7,12),(-4,7),(-1,2),(2,-3)... ...,(−13,22),(−10,17),(−7,12),(−4,7),(−1,2),(2,−3)...
如果 g c d ( a , b ) > 1 gcd(a,b)>1 gcd(a,b)>1情况会如何呢?
因为 g g g整除 a a a与 b b b,我们令 g = g c d ( a , b ) g=gcd(a,b) g=gcd(a,b),故 ( x 1 , y 1 ) (x_1,y_1) (x1,y1)是简单方程 a g x + b g y = 1 \frac{a}{g}x+\frac{b}{g}y=1 gax+gby=1的解,根据前面的方法,通过将 k k k的值代入
( x 1 + k ⋅ b g , y 1 − k ⋅ a g ) (x_1+k\cdot\frac{b}{g},y_1-k\cdot\frac{a}{g}) (x1+k⋅gb,y1−k⋅ga)
可以得到其他解。
例. 60 x + 22 y = g c d ( 60 , 22 ) = 2 60x+22y=gcd(60,22)=2 60x+22y=gcd(60,22)=2,方程有解,求出其中一个解为: x = − 4 , y = 11 x=-4,y=11 x=−4,y=11,
由线性方程定理可知每个解都可以由公式 ( − 4 + 11 k , 11 − 30 k ) (-4+11k,11-30k) (−4+11k,11−30k)( k k k为整数)得到;
当 k = 1 k=1 k=1时, x x x是最小的正整数解。
设 m m m是正整数, a a a和 b b b是整数,如果 m ∣ a − b m|a-b m∣a−b,则称 a a a模 m m m同余于 b b b,或 a a a与 b b b模 m m m同余,记作 a ≡ b ( m o d m ) a≡b(mod\quad m) a≡b(modm).如果 a a a与 b b b不同余,则记作 a ≠ b ( m o d m ) a≠b (mod\quad m) a=b(modm)
a a a与 b b b同余的充分必要条件:
(1) a a a与 b b b除以 m m m的余数相同,即 a m o d m = b m o d m a\ mod\ m=b\ mod\ m a mod m=b mod m.
(2) a = b + k m a=b+km a=b+km,其中 k k k是整数.
性质1 自反性: a ≡ a ( m o d m ) a≡a(mod\quad m) a≡a(modm)
性质2 传递性 a ≡ b ( m o d m ) , b ≡ c ( m o d m ) → a ≡ c ( m o d m ) a≡b(mod\quad m),b≡c(mod\quad m) \rightarrow a≡c(mod\quad m) a≡b(modm),b≡c(modm)→a≡c(modm)
性质3 对称性 a ≡ b ( m o d m ) → b ≡ a ( m o d m ) a≡b(mod\quad m) \rightarrow b≡a(mod\quad m) a≡b(modm)→b≡a(modm)
由传递性,常把 a 1 ≡ a 2 ( m o d m ) , a 2 ≡ a 3 ( m o d m ) , a k − 1 ≡ a k ( m o d m ) 写 成 a 1 ≡ a 2 ≡ . . . a k ( m o d m ) a_1≡a_2(mod\quad m),a_2≡a_3(mod\quad m),a_{k-1}≡a_k(mod\quad m)写成a_1≡a_2≡...a_k(mod\quad m) a1≡a2(modm),a2≡a3(modm),ak−1≡ak(modm)写成a1≡a2≡...ak(modm)
性质4 模算术运算
若 a ≡ b ( m o d m ) , c ≡ d ( m o d m ) , 则 a ± c ≡ b ± d ( m o d m ) , a c ≡ b d ( m o d m ) a≡b(mod\ m),c≡d(mod\ m),则a\pm c≡b \pm d(mod \ m),ac≡bd(mod\ m) a≡b(mod m),c≡d(mod m),则a±c≡b±d(mod m),ac≡bd(mod m)
a k ≡ b k ( m o d m ) a^k≡b^k(mod\ m) ak≡bk(mod m),其中 k k k是非负整数。
性质4 的证明
以 a ≡ b ( m o d m ) , c ≡ d ( m o d m ) a≡b(mod\ m),c≡d(mod\ m) a≡b(mod m),c≡d(mod m),则 a + c ≡ b + d ( m o d m ) a+ c≡b+ d (mod \ m) a+c≡b+d(mod m)为例
a ≡ b ( m o d m ) → a = b + k 1 ⋅ m a≡b(mod \ m) \rightarrow a=b+k_1\cdot m a≡b(mod m)→a=b+k1⋅m
c ≡ d ( m o d m ) → c = d + k 2 ⋅ m c≡d(mod \ m) \rightarrow c=d+k_2 \cdot m c≡d(mod m)→c=d+k2⋅m
两式相加,可得 a + c ≡ b + d + ( k 1 + k 2 ) ⋅ m a+c≡b+d+(k_1+k_2)\cdot m a+c≡b+d+(k1+k2)⋅m,又因为 k 1 + k 2 k_1+k_2 k1+k2 为整数,
a + c ≡ b + d + ( k 1 + k 2 ) ⋅ m → a + c ≡ b + d ( m o d m ) a+c≡b+d+(k_1+k_2)\cdot m \ \ \rightarrow \ a+c≡b+d(mod \ m) a+c≡b+d+(k1+k2)⋅m → a+c≡b+d(mod m)
其它的性质证明过程也一样,这里不再赘述。
性质5
设 c c c与 m m m互素,则 a ≡ b ( m o d m ) ↔ c a ≡ c b ( m o d m ) a≡b(mod\ m)\leftrightarrow ca≡cb(mod \ m) a≡b(mod m)↔ca≡cb(mod m)
性质5证明
符合条件的例子: 3 ≡ 8 ( m o d 5 ) 3≡8(mod\ 5) 3≡8(mod 5),设 c = 2 c=2 c=2,其中3和5互素,得到 6 ≡ 16 ( m o d 5 ) 6≡16(mod\ 5) 6≡16(mod 5)
不符合条件的例子: 15 ⋅ 2 ≡ 20 ⋅ 2 ( m o d 10 ) 15 \cdot 2≡20 \cdot 2(mod\ 10) 15⋅2≡20⋅2(mod 10),15和20不互素且 g c d ( 15 , 20 ) = 5 gcd(15,20)=5 gcd(15,20)=5,得到 15 ≠ 20 ( m o d 10 ) 15≠20(mod\ 10) 15=20(mod 10)
(1)对于任意的整数 c c c和 m m m,可得出 a ≡ b ( m o d m ) → c a ≡ c b ( m o d m ) a≡b(mod\ m)\rightarrow ca≡cb(mod \ m) a≡b(mod m)→ca≡cb(mod m)
证明过程和性质4的过程相同,略。
(2)现在来证明 c a ≡ c b ( m o d m ) → a ≡ b ( m o d m ) ca≡cb(mod \ m) \rightarrow a≡b(mod\ m) ca≡cb(mod m)→a≡b(mod m)
由 c a ≡ c b ( m o d m ) ca≡cb(mod \ m) ca≡cb(mod m)可知, m ∣ c a − c b m|ca-cb m∣ca−cb,即 m ∣ c ⋅ ( a − b ) m|c\cdot (a-b) m∣c⋅(a−b)
又因为 c c c和 m m m互素,必然得到 m ∣ a − b m|a-b m∣a−b,可得 a ≡ b ( m o d m ) a≡b(mod\ m) a≡b(mod m)
练习
3 455 3^{455} 3455的个位数是多少?
解:设 3 455 3^{455} 3455的个位数为x,则有 3 455 ≡ x ( m o d 10 ) . 3^{455}≡x(mod \ 10). 3455≡x(mod 10).由 3 4 ≡ 1 ( m o d 10 ) 3^4≡1(mod \ 10) 34≡1(mod 10)和性质4可得:
3 455 ≡ 3 4 ∗ 333 + 3 ≡ 3 3 ≡ 7 ( m o d 10 ) 3^{455}≡3^{4*333+3}≡3^3≡7(mod \ 10) 3455≡34∗333+3≡33≡7(mod 10)
故 3 455 3^{455} 3455的个位数是 7 .
定义
设 m > 0 m>0 m>0,方程 a x ≡ c ( m o d m ) ax \equiv c(mod\ m) ax≡c(mod m) 称作一次同余方程,使式子成立的整数为方程的解。
一次同余方程 a x ≡ c ( m o d m ) ax \equiv c(mod\ m) ax≡c(mod m)也可以写作线性方程 a x + m y = c . ax+my=c. ax+my=c.
例1. 有同余方程 5 x ≡ 1 ( m o d 10 ) 5x \equiv1(mod\ 10) 5x≡1(mod 10),此方程有解的前提是 10 ∣ 5 x − 1 10|5x-1 10∣5x−1,此方程无解。
例2. 有同余方程 2 x ≡ 1 ( m o d 3 ) 2x\equiv 1(mod \ 3) 2x≡1(mod 3),此方程有解的前提是 3 ∣ 2 x − 1 3|2x-1 3∣2x−1,我们很容易的可以得出其中的一个解 x = 2 x=2 x=2,当然, x = 5 x=5 x=5和 x = 8 x=8 x=8也是方程的一个解,实际上,同余方程只要有解,就有无数个解,解可以表示为 x = 2 + 3 k x=2+3k x=2+3k ( k k k为整数),即 x ≡ 1 ( m o d 3 ) x\equiv 1(mod \ 3) x≡1(mod 3)。
对于同于方程 a x ≡ c ( m o d m ) ax \equiv c(mod\ m) ax≡c(mod m),假设 x 0 x_0 x0是方程的一个解,同余方程的通解为 x ≡ x 0 ( m o d m ) x\equiv x_0(mod \ m) x≡x0(mod m)
我们可以简单的证明一下:
假设 x 0 x_0 x0是同余方程 a x ≡ c ( m o d m ) ax \equiv c(mod\ m) ax≡c(mod m)的一个解,
由 m ∣ a x − c m|ax-c m∣ax−c推出 m ∣ a ( x + m ) − c . m|a(x+m)-c. m∣a(x+m)−c.
m ∣ a ( x + m ) − c → m ∣ a x − c + a m m|a(x+m)-c\rightarrow m|ax-c+am m∣a(x+m)−c→m∣ax−c+am
m ∣ a x − c , m ∣ a m → m ∣ a ( x + m ) − c . m|ax-c \ \ ,m|am\rightarrow m|a(x+m)-c. m∣ax−c ,m∣am→m∣a(x+m)−c.
同余方程可以使用线性方程来表示,之前所说的线性方程定理也证明了这个结论是正确的。
对于有的同余方程来说,可能不止一个通解,比如同余方程 4 x ≡ 2 ( m o d 6 ) 4x \equiv 2(mod\ 6) 4x≡2(mod 6)有两个通解,即 x 0 ≡ 2 ( m o d 6 ) x_0\equiv 2(mod \ 6) x0≡2(mod 6)和 x 1 ≡ 5 ( m o d 6 ) x_1\equiv 5(mod \ 6) x1≡5(mod 6)。
如何计算出所有的通解,只需要计算出所有通解的最小正整数解就行了, a x ≡ c ( m o d m ) ax \equiv c(mod\ m) ax≡c(mod m)的最小正整数解的范围为 0 , 1 , 2 , . . . m − 1 0,1,2,...m-1 0,1,2,...m−1,枚举这个范围的每一个数是否符合要求就可以了。
例:求解同余方程 4 x ≡ 2 ( m o d 6 ) 4x \equiv 2(mod\ 6) 4x≡2(mod 6)
x = 0 x=0 x=0时, 4 ∗ 0 ≡ 0 ( m o d 6 ) 4*0 \equiv 0(mod\ 6) 4∗0≡0(mod 6)
x = 1 x=1 x=1时, 4 ∗ 1 ≡ 4 ( m o d 6 ) 4*1 \equiv 4(mod\ 6) 4∗1≡4(mod 6) 一个解。
x = 2 x=2 x=2时, 4 ∗ 2 ≡ 2 ( m o d 6 ) 4*2 \equiv 2(mod\ 6) 4∗2≡2(mod 6)
x = 3 x=3 x=3时, 4 ∗ 3 ≡ 0 ( m o d 6 ) 4*3 \equiv 0(mod\ 6) 4∗3≡0(mod 6)
x = 4 x=4 x=4时, 4 ∗ 4 ≡ 4 ( m o d 6 ) 4*4 \equiv 4(mod\ 6) 4∗4≡4(mod 6)
x = 5 x=5 x=5时, 4 ∗ 5 ≡ 2 ( m o d 6 ) 4*5 \equiv 2(mod\ 6) 4∗5≡2(mod 6) 一个解。
如果同余方程 a x + m y = c ax+my=c ax+my=c 有解,设 d = g c d ( a , m ) d=gcd(a,m) d=gcd(a,m),方程在模m下有d个不同余的解。
证明:
假设 a x 1 ax_1 ax1是同余式 a x ≡ c ( m o d m ) ax\equiv c(mod \ m) ax≡c(mod m)的其它解, d = g c d ( a , m ) d=gcd(a,m) d=gcd(a,m)
则有 a x 1 ≡ a x 0 ( m o d m ) ax_1\equiv ax_0 (mod m) ax1≡ax0(modm)——》 m m m整除 a x 1 − a x 0 ax_1-ax_0 ax1−ax0.
同时除掉公约数 d d d,则有: m d ∣ a ( x 1 − x 0 ) d \frac{m}{d} | \frac{a(x_1-x_0)}{d} dm∣da(x1−x0)
又证明 g c d ( m d , a d ) = 1 gcd(\frac{m}{d},\frac{a}{d})=1 gcd(dm,da)=1,必然有 m d ∣ ( x 1 − x 0 ) . \frac{m}{d}|(x_1-x_0). dm∣(x1−x0).
综上所述,存在整数 k k k,使得: x 1 = x 0 + k m d , k = 0 , 1 , 2... x_1=x_0+k\frac{m}{d}\ \ ,\ k=0,1,2... x1=x0+kdm , k=0,1,2...
由 m m m的倍数所得的任何两个不同解被认为是相同的,所以恰好有d个不同的解。当 k = d k=d k=d时, x 1 x_1 x1和 x 0 x_0 x0是模 m m m同余的,属于同一个解。
我们可以使用裴蜀定理,判断一次同余方程是否有解
对于同余方程 a ≡ c ( m o d m ) a\equiv c(mod \ m) a≡c(mod m) (也可写作: a x + m y = c ax+my=c ax+my=c) 有解的充分必要条件 g c d ( a , m ) ∣ c gcd(a,m)|c gcd(a,m)∣c,有解时必然有无穷多个解。
证明
充分性:
记 d = g c d ( a , m ) , a = d a 1 , m = d m 1 , c = d c 1 d=gcd(a,m),a=da_1,m=dm_1,c=dc_1 d=gcd(a,m),a=da1,m=dm1,c=dc1其中 a 1 a_1 a1和 m 1 m_1 m1互素。
由定理B 可知,存在 x 1 x_1 x1和 y 1 y_1 y1使得 a 1 x 1 + m 1 y 1 = 1. a_1x_1+m_1y_1=1. a1x1+m1y1=1.
令 x = c 1 x 1 , y = c 1 y 1 x=c_1x_1,y=c_1y_1 x=c1x1,y=c1y1,得 a 1 x + m 1 y = c 1 a_1x+m_1y=c_1 a1x+m1y=c1,等式两边同乘 d d d,得 a x + m y = c ax+my=c ax+my=c.
必要性:
设 x 0 x_0 x0是方程的解,则存在 y y y使得 a x + m y = c ax+my=c ax+my=c.
由性质【如果 d ∣ x , d ∣ y d|x,d|y d∣x,d∣y,对任意整数 x , y x,y x,y,有 d ∣ a x + m y d|ax+my d∣ax+my】可得, d ∣ c d|c d∣c.
同余方程 a x + m y = c ax+my=c ax+my=c 有解的充分必要条件是 g c d ( a , m ) ∣ c gcd(a,m)|c gcd(a,m)∣c.
如果同余方程 a x + m y = c ax+my=c ax+my=c有解,
因为 g c d ( a , m ) ∣ c gcd(a,m)|c gcd(a,m)∣c.设 x = x ′ ⋅ c g c d ( a , m ) y = y ′ ⋅ c g c d ( a , m ) x=x'\cdot \frac{c}{gcd(a,m)}\ y=y'\cdot \frac{c}{gcd(a,m)} x=x′⋅gcd(a,m)c y=y′⋅gcd(a,m)c
a x ′ ⋅ c g c d ( a , m ) + m y ′ ⋅ c g c d ( a , m ) = g c d ( a , m ) ⋅ c g c d ( a , m ) = a x + m y = c ax'\cdot \frac{c}{gcd(a,m)} +my'\cdot \frac{c}{gcd(a,m)}=gcd(a,m)\cdot \frac{c}{gcd(a,m)}=ax+my=c ax′⋅gcd(a,m)c+my′⋅gcd(a,m)c=gcd(a,m)⋅gcd(a,m)c=ax+my=c
上述的定理A说明 a x ′ + m y ′ = g c d ( a , m ) ax'+my'=gcd(a,m) ax′+my′=gcd(a,m)有解,使用扩展欧几里德求出此方程的解 ( x ′ , y ′ ) (x',y') (x′,y′),再求出 a x + m y = c ax+my=c ax+my=c的解,也就是:
( x = x ′ ⋅ c g c d ( a , m ) , y = y ′ ⋅ c g c d ( a , m ) x=x'\cdot \frac{c}{gcd(a,m)}\ , y=y'\cdot \frac{c}{gcd(a,m)} x=x′⋅gcd(a,m)c ,y=y′⋅gcd(a,m)c)
例:求解同余方程 18 x ≡ 8 ( m o d 22 ) . 18x\equiv8(mod\ 22). 18x≡8(mod 22).
解:
求解线性方程 18 x + 22 y = 8 18x+22y=8 18x+22y=8
因为 g c d ( 18 , 22 ) = 2 gcd(18,22)=2 gcd(18,22)=2,2能整除8,方程有解.
先求解方程 18 u + 22 v = g c d ( 18 , 22 ) = 2 18u+22v=gcd(18,22)=2 18u+22v=gcd(18,22)=2,使用扩展欧几里德求出 u = 5 , v = 4 u=5,v=4 u=5,v=4,
又因为:
18 x + 22 y = 8 18x+22y=8 18x+22y=8 ①
18 u + 22 v = 2 18u+22v=2 18u+22v=2 ②
①式是②式的4倍,可求出 x = 4 ⋅ u = 20 , y = 4 ⋅ v = 16. x=4\cdot u=20,y=4\cdot v=16. x=4⋅u=20,y=4⋅v=16.( y y y的值为多少其实不重要)
所以 x ≡ 20 ( m o d 22 ) x\equiv 20(mod\ 22) x≡20(mod 22)是同余式的一个解。
因为 g c d ( 18 , 22 ) = 2 gcd(18,22)=2 gcd(18,22)=2,因此同余式有两个不同余的解,另一个解为 20 + 22 2 = 31 20+\frac{22}{2}=31 20+222=31,即 x ≡ 31 ( m o d 22 ) x\equiv 31(mod\ 22) x≡31(mod 22),不过我们一般倾向于用最小的正整数来表示解,上式可表示为 x ≡ 9 ( m o d 22 ) x\equiv 9(mod\ 22) x≡9(mod 22)