分类
点滴

博弈:取球

这是一个有个球用的问题

有两堆球,A 堆 10 个,B 堆 8 个,甲乙两人轮流选择其一取球,每次至少取一个,至多取该堆全部,谁取了最后一个球即败者。问,先手怎么取球才可以必胜?

压缩一下题目,设 A 堆 3 个,B 堆 1 个。这时候发现并不行,如果先手甲(后同)把 A 堆全取了,那乙必输——这不是博弈,而是乱杀。

那么,设 A 堆 4 个,B 堆 2 个。遍历一下:

  • 甲取 A 4 个,乙取 B 1 个,甲输。
  • 甲取 A 3 个,乙取 B 2 个,甲输。
  • 甲取 A 2 个:
    • 乙取 B 2 个,甲取 A 1 个,乙输。
    • 乙取 B 1 个,甲取 A 2 个,乙输。
    • 两堆球个数相同,乙取 A 多少个也是必输。
  • 甲取 A 1 个(此时 3:2):
    • 乙取 A 1 个,出现 2:2,同上,甲输。
    • 乙取 A 2 个,甲取 B 2 个, 乙输。
    • 乙取 A 3 个,甲取 B 1 个, 乙输。
    • 乙取 B 1 个,甲取 A 3 个, 乙输。
    • 乙取 B 2 个,甲取 A 2 个, 乙输。

遍历结束,得到一个信息:谁先把两堆球的数量取到 2:2 必胜。

把原题重新拿出来,设甲取 A 8 个,这时候如果乙也发现了同样的信息,那乙就会取 B 6 个,乙胜;故,甲为了杜绝这种情况,取 A 7 个,接下来乙可能的取法有这些:

  • 乙取 B 8 个,甲取 A 2 个,乙输。
  • 乙取 B 7 个,甲取 A 3 个,乙输。
  • 乙取 B 6 个,甲取 A 1 个,出现 2:2,乙输。
  • 乙取 B 5 个(此时 3:3):
    • 甲取 A 3 个,乙取 B 2 个,甲输。
    • 甲取 A 2 个,乙取 B 3 个,甲输。
    • 甲取 A 1 个,乙取 B 1 个,出现 2:2,甲输。
    • 两堆球个数相同,甲取 B 多少个也是必输。

遍历中止,再次得到一个信息:谁先把两堆球的数量取到 3:3 必胜。

发现了一个可能的规律:先取到 N:N 必胜。脑海里设想一下 4:4、5:5、6:6,经过努力的计算,发现全部成立。

最终得到结论,谁先把两堆球的数量比例取到 N:N(N>=2) 必胜。因此,原题的答案就是先手取 A 2 个必胜。

思维拓展:两堆球升级到三堆球呢,这时候如何解?

感谢大胖带我解题,虽然最后发散思维想了一个更难更坑的三堆球 🥲

计算中的草稿纸
计算中的草稿纸

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注