![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
博弈论
yqdjl6
这个作者很懒,什么都没留下…
展开
-
斐波那契博弈
母题:有一堆个数为n的石子,游戏双方轮流取石子,满足: 1)先手不能在第一次把所有的石子取完; 2)之后每次可以取的石子数介于1到对手刚取的石子数的2倍之间(包含1和对手刚取的石子数的2倍)。 这种博弈题麻烦的地方是每次走的步数限制是动态的,是根据上一步对手走的步数来推断,这里必须要引入一个定理:齐肯多夫定理 任何正整数都可以表示成若干个不连续的斐波那契数之和。这种和式称为齐肯多夫表述法。原创 2017-07-01 13:37:44 · 456 阅读 · 0 评论 -
SG函数
SG函数是博弈论最核心的部分,学好SG函数,大部分博弈论的题就都能做出来,刚开始理解起来确实很困难,多往纸上写写关系就出来了。 先引入SG值: 一个点的SG值就是一个不等于它的后继点的SG的且大于等于零的最小整数。也就是在步骤允许的情况下,与前面一个必败点的差(也就是说这个差是规定的、能走的、其中一个步数)! 我们拿一道例题来讲: Good Luck in CET-4 Everyb原创 2017-07-01 14:44:43 · 277 阅读 · 0 评论 -
求SG函数的值(模板)
求单独一个数的SG值:#include<bits/stdc++.h>using namespace std;const int maxn=1e4+5;using LL=int64_t;int ans[maxn],SG[maxn];int get_SG(int n) { if(SG[n]!=-1) return SG[n]; bool visit[101]; mems原创 2017-07-01 15:23:54 · 455 阅读 · 0 评论 -
博弈论之巴什博弈
前几天在浙江工业的校赛上看到一道签到题(对我来说并不是),题目很简单,大意是两个人轮流从k张扑克牌中拿走最少一个,最多m张扑克牌,最后把扑克牌都拿光的人获胜,之前在福建师范大学的校赛上也见过这道题,后来被大佬提醒才发现是道板子题,这就是经典的巴什博弈,这几天就想着总结一下组合数学的问题原创 2017-06-01 14:19:19 · 351 阅读 · 0 评论 -
博弈论之尼姆博弈
尼姆博弈尼姆博弈也是一个经典的博弈问题,大意是:有若干堆石子,每堆石子的数量都是有限的,合法的移动是“选择一堆石子并拿走若干颗(不能不拿)”,如果轮到某个人时所有的石子堆都已经被拿空了,则判负(因为他此刻没有任何合法的移动)。原创 2017-06-01 15:43:52 · 925 阅读 · 0 评论 -
博弈论之威佐夫博奕
威佐夫博奕威佐夫博奕也是一个经典问题,我们来把这三个问题做一下对比: 威佐夫博奕:有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。原创 2017-06-04 03:50:05 · 315 阅读 · 0 评论