这一招在做什么
方程 ax+by=c 只有一个等式、却有两个未知数,所以叫不定方程。我们只要它的整数解——也就是直线上的整点。
ax+by=c 有整数解⟺d∣c,d=(a,b)
有解时,设 (x0,y0) 是一组解,全部解是
x=x0+dbt,y=y0−dat(t 取遍所有整数)
- 求 d=(a,b)。如果 d∤c,没有整数解,收工。
- 找一组特解 (x0,y0):小数字靠试,大数字用辗转相除“倒着写”。
- 写出通解,再按题目的要求(正整数、某个范围)定出 t 可以取哪些值。
先猜后证
6x+9y=20 有多少组整数解?
先选定答案,才能看到结论。
✓ 猜对了!✗ 和你想的不一样——这正是值得停一下的地方。
左边 6x+9y=3(2x+3y),无论 x、y 取什么整数,都是 3 的倍数。右边 20 不是。
图上看:直线从整点之间的缝里穿过去,一个也碰不到。把 c 拖到 21 再看。
跟着做一遍
例:求 4x + 7y = 53 的全部正整数解
第 1 / 5 步 -
先问有没有解 (4,7)=1,而 1 整除任何数。有解。
d=(4,7)=1,1∣53
-
找一组特解
-
往右跳一步
-
往左也能跳
-
筛出正整数解
特解试不出来的时候
系数大了,就让辗转相除替你找。先解 ax+by=d,再整体放大 c/d 倍。
切到底,“倒着写”那一列的最后一行给出 37×6+13×(−17)=1。所以 37x+13y=5 的一组特解是 (30,−85)。
方程组:先消元
三个未知数、两个方程,先消去一个,就回到上面的情形。
例(“百鸡问题”,出自《张丘建算经》) 公鸡每只 5 钱,母鸡每只 3 钱,小鸡 3 只 1 钱。用 100 钱买 100 只鸡,各买几只?
设公鸡 x 只、母鸡 y 只、小鸡 z 只:x+y+z=100,5x+3y+3z=100。第二式乘 3 再减去第一式,消去 z:
14x+8y=200⟺7x+4y=100.
特解 (0,25),通解 x=4t,y=25−7t,于是 z=75+3t。要三个数都不是负数,t=0,1,2,3:
(x,y,z)=(0,25,75), (4,18,78), (8,11,81), (12,4,84).
什么时候不灵
结论:ax+by=c 有整数解 ← 还成立吗?
6x+9y=21:(6,9)=3,3∣21。直线上每隔 (3,−2) 就有一个整点。
只把 21 改成 20。
直线被夹在 6x+9y=18 和 6x+9y=21 两条虚线之间。整点只会落在这样的虚线上(c 是 3 的倍数),所以这条直线上一个整点也没有。
练一练
5x+3y=31 有几组正整数解?
提示 · 方法找一组特解,写通解,再让 x>0、y>0。
提示 · 第一步x=2 时 3y=21,y=7。通解 x=2+3t,y=7−5t。
完整解答2+3t>0 且 7−5t>0,得 t=0,1:(2,7) 和 (5,2)。共 2 组。
15x+21y=c 有整数解,并且 100≤c≤105。c 可以是哪些数?
完整解答c 必须是 3 的倍数。100 到 105 之间有 102 和 105。
把 100 写成“7 的正整数倍”与“11 的正整数倍”之和:100=7x+11y,x、y 是正整数。求 x+y。
提示 · 方法100−11y 必须是 7 的倍数。可以逐个试 y=1,…,9,也可以用同余。
提示 · 第一步模 7:11y≡100 即 4y≡2,所以 y≡4(mod7)。
完整解答y=4 时 7x=56,x=8。下一个 y=11 已使 11y>100。所以唯一的写法是 100=7×8+11×4,x+y=12。
只有 5 分和 8 分两种邮票(每种都足够多)。凑不出来的最大邮资是多少分?
提示 · 方向先列出小的邮资里哪些凑不出,找找规律。
提示 · 方法如果连续 5 个数都凑得出,那么之后的每个数都凑得出(再加一张 5 分)。
提示 · 第一步28=4×5+8,29=5+3×8,30=6×5,31=3×5+2×8,32=4×8。
完整解答28 到 32 连续五个数都凑得出,所以 28 以上全都可以。而 27 依次减去 0,1,2,3 张 8 分得 27,19,11,3,都不是 5 的倍数,凑不出。答案是 27。