摘要: 下面是一个二人小游戏:桌子上有M堆扑克牌;每堆牌的数量分别为Ni(i=1…M);两人轮流进行;每走一步可以任意选择一堆并取走其中的任意张牌;桌子上的扑克全部取光,则游戏结束;最后一次取牌的人为胜者。现在我们不想研究到底先手为胜还是为负,我只想问大家:——“先手的人如果想赢,第一步有几种选择呢?” I 阅读全文
posted @ 2019-09-11 23:27 古比 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 尼姆博弈(Nimm Game): 尼姆博弈指的是这样一个博弈游戏:有任意堆物品,每堆物品的个数是任意的,双方轮流从中取物品,每一次只能从一堆物品中取部分或全部物品,最少取一件,取到最后一件物品的人获胜。 结论就是:把每堆物品数全部异或起来,如果得到的值为0,那么先手必败,否则先手必胜。 阅读全文
posted @ 2019-09-11 23:24 古比 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。 这种情况下是颇为复杂的。我们用(ak,bk)(ak ≤ bk ,k=0,1,2,…,n)表示两堆物品的数量并称其为局势,如果甲面对(0,0),那么甲已经输了,这种局势我们称为奇异局势。 阅读全文
posted @ 2019-09-11 23:03 古比 阅读(106) 评论(0) 推荐(0) 编辑
摘要: (一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜。因此我们发现了如何取胜的法则:如果n=(m+1 阅读全文
posted @ 2019-09-11 22:48 古比 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 1 #include<cstdio> 2 #include<iostream> 3 #include<algorithm> 4 #include<string.h> 5 using namespace std; 6 typedef long long ll; 7 const ll maxn=1e5+ 阅读全文
posted @ 2019-09-11 22:25 古比 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 1 #include<cstdio> 2 #include<algorithm> 3 #include<string.h> 4 #include<math.h> 5 #include<queue> 6 #include<iostream> 7 using namespace std; 8 const 阅读全文
posted @ 2019-09-11 19:04 古比 阅读(166) 评论(0) 推荐(0) 编辑