摘要: 首先介绍一个重要定理——策梅洛定理(Zermelo) Chomp!游戏 问题:有一个n*m的棋盘,每次可以取走一个方格并拿掉它右边和上边的所有方格。拿到左下角的格子(1,1)者输,那么谁会赢呢? 先给结论:除了(1, 1)先手必败外,其他都是先手必胜。 证明如下: 根据策梅洛定理,这个问题至少有一方 阅读全文
posted @ 2019-10-05 23:52 Rogn 阅读(1291) 评论(0) 推荐(0) 编辑
摘要: Grundy值 当前状态的Grundy值就是除任意一步所能转移到的状态的Grundy值以外的最小非负整数, 以硬币问题一为例,可写成: Grundy值有什么用呢? 它的作用是巨大的,利用它,不光可以解决这个问题,其它许多问题都可以转换成前面介绍的Nim问题,即问题的解等于子问题的异或和。 Nim问题 阅读全文
posted @ 2019-10-05 21:22 Rogn 阅读(392) 评论(0) 推荐(0) 编辑
摘要: Nim博弈 题目 有n堆物品,两人轮流取,每次取某堆中不少于1个,先取完者胜。 分析 经典问题,该问题的策略也成为了许多问题的基础。 要判断游戏的胜负只需要异或运算就可以了,有以下结论: $a_1 \ xor \ a_2\ xor ... \ xor a_n \neq 0$,必胜态 $a_1 \ x 阅读全文
posted @ 2019-10-05 18:24 Rogn 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 题目 给定两个整数 a 和 b,Stan和Ollie轮流从较大的数字中减去较小的数的倍数。这里的倍数是指1倍、2倍这样的整数倍,并且相减后的结果不能小于0。Stan先手,在自己的回合将其中一个数变成零的一方获胜。当双方都采取最优策略时,谁会获胜? 分析 不妨设 a<b, 情况一:若b<2a,则(a, 阅读全文
posted @ 2019-10-05 16:07 Rogn 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 题目 n枚硬币排成一个圈。Alice和Bob轮流从中取一枚或两枚硬币。不过,取两枚时,所取的两枚硬币必须是连续的。硬币取走之后留下空格,相隔空格的硬币视为不连续。Alice开始先取,取走最后一枚硬币的获胜。当双方都采取最有策略时,谁会获胜? 分析 不管,先爆搜找规律。 规律很明显,小于等于2先手赢, 阅读全文
posted @ 2019-10-05 11:16 Rogn 阅读(344) 评论(0) 推荐(0) 编辑
摘要: 题目 Alice和Bo在玩这样一个游戏,给定 $k$ 个数字 $a_1, a_2,..,a_k$.一开始有 $x$ 枚硬币,Alice和Bob轮流取硬币。每次所取的硬币的枚数一定要在 $k$ 个数当中。Alice先取,取走最后一枚的获胜。当双方都采取最有策略时,谁会获胜?假设 $k$ 个数中一定有1 阅读全文
posted @ 2019-10-05 10:28 Rogn 阅读(358) 评论(0) 推荐(0) 编辑