博弈论学习笔记
挖个巨坑,慢慢填。
从 Nim 游戏入手
问题:有
前置知识:
- 异或
:有两个数均为 或 ,若它们相等则异或结果为 ,不相等结果为 - 按位异或
:将两个正整数分别表示成二进制,对应位进行异或。易证,按位异或满足交换律、结合律,同时有自反性,即 - 异或和:若干个正整数
的异或和为 。容易发现,若 (二进制)中某一位为 的数字个数为奇数,则异或和中该位为 ;若为偶数,则异或和中该位为
结论:若
感性理解一下。考虑只有两堆的特殊情况,如果两堆的数量相等,那么先手必败,策略为:先手从一堆中取若干个,后手从另一堆中取相同个数,则易证一定被后手取完。反之,如果两堆的数量不等,那么先手必胜,策略为:先从多的那堆里取若干个,使两堆数量相等,接下来同上(后手变为上面的先手)。
考虑用异或来解释。若先手取时两堆不相等(即异或和不为
有了以上感性理解,我们就可以尝试推广到
定理一:当异或和不为
证明:
若我们所在的状态满足
所以只要异或和不为
定理二:当异或和为
证明:
假设取后异或和仍然为
综上所述,当先手处于异或和不为
- 先手一定可以通过一定方式变成异或和为
(定理一) - 此时后手只能变成异或和不为
(定理二),接下来重复步骤 1 - 胜利状态的
全为 ,异或和为 ,而对手只能变成异或和不为 ,所以永远取不到胜利状态 - 由于每步石子数必然会减少,最终一定会达到胜利状态,则胜利状态必然由先手取到
若先手处于异或和为
未完待续,不定期更新。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步