二元一次不定方程的通解证明

· · 个人记录

实际应用中,我们会被要求判断方程是否有整数解、或求出xy的最大/最小正整数值、判断是否有正整数解、以及正整数解的组数等。首先对于有无整数解,与B\acute ezout定理证明相同,即(a,b)\mid c时有整数解。

正整数解存在性:对于根的大小,由于ax+by=cabc都是常数,因此x增大时y将减小。当x取最小正整数值时y将是最大整数值y不一定是正数,反之亦然)。此时如果x\cdot y>0,即两者同号(x>0),有正整数解;如果x\cdot y\leq0则表明无正整数解。

方程通解及最值问题:我们需要构造方程的通解来解决这个问题。

首先根据exgcd求出的整数解x_0y_0,有ax_0+by_0=(a,b)

根据B\acute ezout定理,(a,b)=m\cdot c,m\in\mathbb Z。两边同除以ma\frac{x_0}{m}+b\frac{y_0}{m}=c,因为m=\frac{(a,b)}{c},所以a\frac{c\cdot x_0}{(a,b)}+b\frac{c\cdot y_0}{(a,b)}=c。以上又是一组特解,记作x_1y_1,则:

假设整数解$x$的两个根相差$d_x$,两个$y$之间相差$d_y$。那么这个式子显然成立:$a(x_1+d_x)+b(y_1-d_y)=c

这个式子同样也满足上面这个形式:a(x_1+db)+b(y_1-da)=c(拆括号消去即可),那么d_x=db,d_y=da

要想它变成一组通解,它必须得满足xy是整数的条件。将新解写出来就是:x_1=\frac{c-by_1}{a}=\frac{c-by_1+dab}{a}

因为x_1=\frac{c-by_1}{a},因此c-by_1必定是a的倍数,如果要满足x_1也是一个整数,那么dab也必须是a的整数倍。同理dab也得是b的整数倍。

很显然,aa的倍数、bb的倍数,那么a\mid dabb\mid dab可以转化成a\mid dbb\mid da的存在性问题。

d=\frac{1}{(a,b)}d_x,d_y最小。通解就可以表示成:

\begin{cases}x=x_1+sd_x\\y=y_1-sd_y\end{cases},s\in\mathbb Z

可以看出:s增大,x增大,y减小,s最大时x最大,y最小,反之亦然。题目中要求x>0,y>0,则有如下不等式组:

因此当$\lceil\frac{-x_1+1}{d_x}\rceil>\lfloor\frac{y_1-1}{d_y}\rfloor$时方程无解,即没有正整数解。反之则有正整数解,解的个数为:$\lfloor\frac{y_1-1}{d_y}\rfloor-\lceil\frac{-x_1+1}{d_x}\rceil$。 不等式有解时,有最值解: $\begin{cases}x_{min}=x_1+\lceil\frac{-x_1+1}{d_x}\rceil\cdot\frac{b}{(a,b)}\\y_{min}=y_1-\lfloor\frac{y_1}{d_y}\rfloor\cdot\frac{a}{(a,b)}\\x_{max}=\frac{c-by_{min}}{a}\\y_{max}=\frac{c-ax_{min}}{b}\end{cases} Q.E.D.