最近半个月在看博弈,主要是简单的博弈问题 ,几个常见的博弈类型(巴什博奕,威佐夫博奕,尼姆博奕,反尼姆博奕,斐波那契博弈),sg函数。
1.简单博弈问题: 对于简单的博弈问题,我们可以做出PN图,归纳总结必胜局面,必败局面。这类的博弈类似于找规律题,做几个
练习熟悉思想,掌握方法即可。
练习题推荐: HDOJ 2147
2.三大基础博弈类型(巴什博奕,威佐夫博奕,尼姆博奕):这三类是最常见的博弈类型,网上这方面的资料与博文也很多,
在此我不做分析总结。推荐一些我在学习中膜拜的博文。
博文地址: 推荐1 推荐2 推荐3
3.斐波那契博弈:
博弈模型:有一堆个数为n的石子,两人轮流在其中取石子。 取石子的条件满足以下: 1). 先手第一次不能取完,至少取一颗;
2).从第二次开始,每个人取得石子数至少为1,最多为对手刚刚一次取的石子数的两倍。 规定取到最后一颗的为胜。
求解方法: 我们都知道斐波那契数列:1,2,3,5,8,13,21.........在斐波那契博弈中所有的必败点都是斐波那契数列中数。
结论证明:关于求解方法的证明,还没有弄懂,无法详述。推荐一篇博文:斐波那契博弈
4.反尼姆博奕,也就是anti-nim:
博弈模型:模型与尼姆博弈一样,参见上面。区别在于在尼姆博奕中取完最后一颗石子的人为赢家,则取到最后一颗石子为输家的
就是反尼姆博奕。
求解方法:反尼姆博奕中判断必胜局面的条件有两点,满足任意一点先手都能取胜,即必胜局面: 1:各堆石子数目异或结
果不等于0,且存在有石子数目大于1的石子堆。 2:各堆石子数目异或结果等于0,且所有石子堆数目全部为1。
结论证明:1).若所有堆的石子个数都为1且异或结果为零,则共有偶数堆石子,故先手不能取到最后一颗石子,获胜。
2). A: 只有一堆石子数大于1时,我们可以对该堆石子进行操作,使得操作后石子堆数为奇数且每堆石子数为1。
B: 有多堆石子数目大于1时,先手将异或结果变为0即可,且总还存在某堆石子数大于1。
5.sg函数:对于sg函数,我已经写过一篇小结,阐述的不是很清楚(就是我自己还没弄懂(。•ˇ‸ˇ•。))。
博文推荐: 我的sg函数小结 推荐博文
博弈类题目很多,这里就不一一推荐,各种OJ里都能找到,我的博文分类 “博弈论” 中也有部分题目。