Broken ATM


题目

George只有$500,全部存在银行账户里。他现在急需现金,但唯一可用的是一台坏掉的ATM: 这台机器只能进行“每次恰好取款$300”或“每次恰好存款$198”的操作。 问:George最多能从账户里拿到多少现金?

分析

设银行账户余额为\(A\),手中现金为\(C\)

有两个关键不变量:

  1. 总额不变:\(A+C=500\)
  2. 每次操作使账户变化\(-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}\)

Previous Next