不定方程
在引入同余方程前,我们先讨论一种最简单的二元一次不定方程的解的有关问题
假设有不定方程
ax+by=c
则有结论:该方程有解的充要条件是 gcd(a,b)∣c
证明
充分性
引理:贝祖定理,设 d=gcd(a,b) ,则存在整数 u,v 使得
au+bv=d
贝祖定理的证明有两种方法。
贝祖定理证法1
考虑集合
S={ax+by∣x,y∈Z}
设
S+={m∈S∣m>0}
由于 a,b 不全为 0 ,则假设 a=0 ,考虑 x=±1 使得 ax>0 ,显然有 ∣a∣∈S+ ,故 S+ 非空。
由良序原理知,S+ 有最小元
d=minS+
此时设 d=ax0+by0
用 d 对 a 做带余除法:
a=qd+r(0≤r<d)
则
r=a−qd=a−q(ax0+by0)=a(1−qx0)+b(−qy0)
则显然有 r∈S
若 r>0 ,则 r∈S+ ,且 r<d ,与 d 的最小性矛盾,故 r=0
故 d∣a ,同理可证 d∣b
下证 d 在 a,b 的正约数集合中的最大性
设 c 为 a,b 的一个正约数,则有 c∣(ax0+by0=d) ,所以 c≤d ,故 d 为 a,b 的最大公约数。
则此时取 u=x0,v=y0 ,即有贝祖定理得证。
贝祖定理证法2
由扩展欧几里得算法可推出,此处不再赘述。
下面回到对充分性的证明:
考虑贝祖定理的表达式:
au+bv=d
由 d∣c 得,存在整数 k ,使得 c=kd
则方程两边同乘 k 得:
a(uk)+b(vk)=dk=c
则取 x0=uk,y0=vk ,此时 x0,y0 为方程的一组解,充分性成立。
必要性
设存在一组解 x0,y0 使得 ax0+by0=c ,则由公约数的性质得:
d∣ax0+by0=c
故 d∣c ,必要性得证。
同余方程
我们先介绍最简单的一次同余方程:
ax≡b(modm)
设 ax=k1c+r,b=k2c+r ,两式相减得:
ax−b=(k1−k2)m
整理得:
ax+m(k2−k1)=b
设 t=k2−k1 ,则
ax+mt=b
显然这是一个二元一次不定方程,套用我们刚刚的结论,x 有解当且仅当
gcd(a,m)∣b
而对于一次同余方程的解,设 d=gcd(a,m),则同样有贝祖定理
au+mv=d
设 b=kd
a(uk)+m(vk)=dk=b
则 x=uk 即为原一次同余方程的解,此时我们要求解 u ,可以使用扩展欧几里得算法来求解。