四年级杂题
#逆向推理
题目
甲、乙两人轮流报数:甲先报,乙接着报。每人每次可以连着报 1 个、2 个或 3 个连续的自然数(例如上一次报到 7,这次可以只报 8,也可以报 8、9 或 8、9、10)。从 1 开始报起,谁报到 30,谁就获胜。问甲(先手)能否必胜?他第一次应当报到几?
解法
- 1.分析:每人一次可以报 1、2 或 3 个数,所以“你上一次报到 n”后,对手下一次最多能报到 n + 3。这是一种典型“轮流取 1–3 件”游戏,可以从终点 30 倒着推回去,找出哪些位置是“报到它的一方必胜”。
制胜点(从 30 倒退) = 30, 26, 22, 18, 14, 10, 6, 2 甲首着应报到 = 2(即 “1, 2”) 首着 之后每轮补齐到 4 个 = 乙 k 个 → 甲 (4−k) 个 “4 的补数”策略
- 2.所有必胜的“制胜点”满足:不论对手下次报 1、2、3 个数,你都能够把数字推到下一个制胜点。🏆× 先手甲必胜方+🎯× 2首次报到
结论
- 3.从 30 出发,每次减 4(对方报 1 个你补 3 个,对方报 2 个你补 2 个,对方报 3 个你补 1 个,总共推进 4)。
- 4.得到制胜点 30、26、22、18、14、10、6、2。
- 5.先手甲的第一步可以报到 1、2 或 3 中任意,他应当报 “1, 2” 把数推到 2,这正是最小的制胜点。
- 6.此后不管乙报几个,甲总能把数接到下一个制胜点:乙报 1 个 → 甲报 3 个;乙报 2 个 → 甲报 2 个;乙报 3 个 → 甲报 1 个。
- 7.按这个策略甲依次到达 2, 6, 10, 14, 18, 22, 26, 30,最终甲报到 30 必胜。
练一练
规则相同,改为从 1 开始报数,谁先报到 20 谁胜;每人每次报 1 或 2 个连续数。先手必胜时,第一次应报到几?