题目
George只有$500,全部存在银行账户里。他现在急需现金,但唯一可用的是一台坏掉的ATM: 这台机器只能进行“每次恰好取款$300”或“每次恰好存款$198”的操作。 问:George最多能从账户里拿到多少现金?
分析
设银行账户余额为\(A\),手中现金为\(C\)。
有两个关键不变量:
- 总额不变:\(A+C=500\)。
- 每次操作使账户变化\(-300\)(每次取款$300)或\(+198\)(每次存款$198),而\(\gcd(300,198)=6\),所以\(A\bmod 6\)不变。
初始\(A=500\equiv 2\pmod 6\),因此任意时刻都有\(A\equiv 2\pmod 6\)。 由\(C=500-A\)可得\(C\equiv 0\pmod 6\),也就是现金必须是6的倍数。
因为\(C\le 500\),所以现金的理论上界是\(498\)(不超过500的最大6的倍数)。
接下来证明\(498\)确实可达。
先构造一个“现金每次增加6”的合法循环。若当前现金为\(c\)(其中\(0\le c\le 96\)且\(c\)为6的倍数),执行:
- 取款$300:\(c\to c+300\)
- 存款$198:\(c+300\to c+102\)
- 取款$300:\(c+102\to c+402\)
- 存款$198:\(c+402\to c+204\)
- 存款$198:\(c+204\to c+6\)
所以该5步操作把现金从\(c\)变成\(c+6\),且各步都合法。
从初始\(c=0\)开始重复该循环,可到达\(c=96\)。
然后执行:
- 取款$300,再存款$198:\(96\to 396\to 198\)
- 再取款$300:\(198\to 498\)
因此可以取出的最多现金为\(\boxed{498}\)。