教材 · 数学 Course 2 · 数与式 · 整数的性质

互除法与一次不定方程

互除法と1次不定方程式

6 整数の性質 / ユークリッドの互除法6 整数の性質 / 1次不定方程式
一句话结论

a=bq+ra=bq+r 时 gcd⁡(a, b)=gcd⁡(b, r)\gcd(a,\,b)=\gcd(b,\,r),反复做到余数为 00,那一步的除数就是最大公约数。aa、bb 互素时,ax+by=cax+by=c 找到一组解 (x0, y0)(x_0,\,y_0) 后,全部整数解是 x=x0+bkx=x_0+bk,y=y0−aky=y_0-ak:xx 跟着 yy 的系数跳,yy 跟着 xx 的系数跳。

用 77 元和 1111 元的邮票凑出正好 100100 元,各买几张?一个方程两个未知数,本来「解不定」,可张数只能是非负整数,答案就只剩 88 张和 44 张一组。另一个问题:391391 和 299299 的最大公约数,分解素因数要试很久。互除法同时解决这两件事:几次除法求出最大公约数,倒过来走又给出不定方程的一组整数解。

为什么是这样

关键一句:若 a=bq+ra=bq+r,则 aa、bb 的公约数与 bb、rr 的公约数完全相同。前者能整除 r=a−bqr=a-bq,后者能整除 a=bq+ra=bq+r。公约数一个不差,最大的自然相等。于是 (a, b)(a,\,b) 换成更小的 (b, r)(b,\,r),答案不变、数变小;余数总比除数小,几步后必然除尽,这时的除数就是最大公约数。

图上看:在 a×ba\times b 的长方形里尽量多地切下边长 bb 的正方形,剩下 b×rb\times r 的窄条,再对它重复。最后恰好切完的小正方形能量尽每一条边,它的边长就是最大公约数。

再看 ax+by=cax+by=c。左边总是 gcd⁡(a, b)\gcd(a,\,b) 的倍数,所以 cc 不是它的倍数时无解。是倍数时一定有解:把互除法每一步写成「余数=被除数-商×除数」,从最后一步往回代,就把 gcd⁡(a, b)\gcd(a,\,b) 写成了 ax+byax+by,再乘上倍数即可。

有了一组解 (x0, y0)(x_0,\,y_0),任一组解与它相减得 a(x−x0)=−b(y−y0)a(x-x_0)=-b(y-y_0)。aa、bb 互素时 bb 必须整除 x−x0x-x_0,所以 xx 按 bb 的倍数跳,yy 同时按 aa 的倍数反向跳:直线 ax+by=cax+by=c 上的格点等距排开。

互除法的图形意义:21×15 的长方形反复切下最大的正方形,最后切完的正方形边长 3 就是最大公约数15×156×66×6332115虚线方格:边长 3 的正方形正好铺满21 和 15 的互除21 = 15 × 1 + 6切下 1 个 15×15,剩下 15×6 的窄条15 = 6 × 2 + 3切下 2 个 6×6,剩下 6×3 的窄条6 = 3 × 2 + 0切下 2 个 3×3,正好切完除尽那一步的除数 3 = 最大公约数

定量表达

互除法写成一串除法:391=299×1+92391=299\times1+92,299=92×3+23299=92\times3+23,92=23×492=23\times4,除尽了,所以 gcd⁡(391, 299)=23\gcd(391,\,299)=23。含字母的式子也能这样除:3n+5=3(n+1)+23n+5=3(n+1)+2,所以 gcd⁡(3n+5, n+1)=gcd⁡(n+1, 2)\gcd(3n+5,\,n+1)=\gcd(n+1,\,2),nn 为奇数时是 22,偶数时是 11。

求 37x+16y=137x+16y=1 的一组解:37=16×2+537=16\times2+5,16=5×3+116=5\times3+1。倒推 1=16−5×3=16−(37−16×2)×3=16×7−37×31=16-5\times3=16-(37-16\times2)\times3=16\times7-37\times3,得 x=−3x=-3,y=7y=7。解 37x+16y=537x+16y=5 就乘 55,特解 (−15, 35)(-15,\,35),相减得 37(x+15)=−16(y−35)37(x+15)=-16(y-35),互素,所以 x=16k−15x=16k-15,y=−37k+35y=-37k+35。kk 换成 k+1k+1 得 x=16k+1x=16k+1,y=−37k−2y=-37k-2,是同一组解,填卡时按题目给的形式对齐。系数不互素先约分:6x+4y=106x+4y=10 化成 3x+2y=53x+2y=5 再做。

直线 3x+5y=4 上的格点等距排开:x 每次加 5,y 每次减 3xyO+5−3+5−3(−2, 2)(3, −1)(8, −4)直线 3x + 5y = 4 上的格点相邻两个整数解之间:x 增加 5(y 的系数)y 减少 3(x 的系数)特解 (3, −1) 加上步长:x = 3 + 5k,y = −1 − 3k3 与 5 互素,所以中间再没有别的格点落在直线上
ax+by=c:x=x0+bk,y=y0−akax+by=c:\quad x=x_0+bk,\quad y=y_0-ak
a, ba,\ b
xx、yy 的系数,互素的整数
cc
常数项,整数
x0, y0x_0,\ y_0
已经找到的任意一组整数解(特解)
kk
任意整数,每取一个值得到一组解
x, yx,\ y
方程的全部整数解
适用条件
  • aa、bb 必须互素。不互素时先两边除以 gcd⁡(a, b)\gcd(a,\,b);cc 除不尽,方程没有整数解
  • xx 的步长是 yy 的系数 bb,yy 的步长是 xx 的系数 aa,符号一正一负
  • 换一组特解,只是 kk 的编号整体平移,表示的是同一组解

怎么用

不定方程按四步:① 约掉系数的最大公约数,确认 cc 能被它整除;② 找一组解,系数小就直接试(让 c−byc-by 被 aa 整除),系数大就用互除法倒推;③ 原式减去特解的式子,化成 a(x−x0)=−b(y−y0)a(x-x_0)=-b(y-y_0),由互素写出通解;④ 把题目的限制(自然数、两位数、x<yx<y 等)化成 kk 的不等式,求出 kk。

登录后免费阅读全文

本节还有 7 部分,以及配套的真题和小测验。

  • 本节公式一览
  • 例题
  • 容易错在哪里
  • 自测
  • 小结
  • 日文术语