题目
爱丽丝秘密地写下一个大于100的正整数。鲍勃每次可以猜一个大于1的数\(k\),如果\(k\)能整除爱丽丝的数,鲍勃获胜。否则\(k\)会从爱丽丝的数中被减去,且鲍勃不能再用这个\(k\)。如此循环,直到鲍勃猜中因数(鲍勃赢),或爱丽丝的数变成0或负数(爱丽丝赢)。 鲍勃有没有必胜策略?
分析
这个游戏的关键在于,Bob可以通过巧妙地选择一系列较小的数字,使得无论Alice选什么数,最终都能被Bob的某个数整除。
我们以模\(12\)为例,Bob可以依次猜\(2,3,4,6,16,12\)。下表细致展示每一步递推过程,每轮只用一个\(k\),直到所有余数被归零:
下面严格按照你给的2,3,4,6,16,12顺序,每一步只递推当前余数集合和本轮\(k\),直到所有余数被消除:
| 步骤 | 当前余数集合 | Bob猜测\(k\) | 被\(k\)整除的余数 | 未被整除的余数 | 未被整除的余数减去\(k\)后(mod 12) |
|---|---|---|---|---|---|
| 1 | 0,1,2,3,4,5,6,7,8,9,10,11 | 2 | 0,2,4,6,8,10 | 1,3,5,7,9,11 | 11,1,3,5,7,9 |
| 2 | 11,1,3,5,7,9 | 3 | 3, 9 | 11, 1, 5, 7 | 8, 10, 2, 4 |
| 3 | 8, 10, 2, 4 | 4 | 8, 4 | 10, 2 | 6, 10 |
| 4 | 6, 10 | 6 | 6 | 10 | 4 |
| 5 | 4 | 16 | - | 4 | 0 |
| 6 | 0 | 12 | 0 | - | 游戏结束 |
每一行只处理当前余数集合和本轮\(k\),未被整除的余数进入下一步。可以看到,所有余数最终都被消除。
最坏情况下,Bob的猜测序列\(2,3,4,6,16,12\)的和为\(43\),远小于\(100\),因此Alice的数在Bob用完这些数之前不会变成负数。
这个策略的本质是利用模数覆盖和递推,使Alice无法逃脱被整除的命运。
另外一个可行的猜测序列,是\(6,4,3,2,5,12\)。