博弈论

(1)巴什博弈

有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。

这个游戏是有规律的,并且每个人都采取理智最优的话,游戏一开始就决定了胜负。

与之类似的是报数,从1开始报,最少报数加一个,最多报数加3个,谁先报到20谁赢。

第一个人无论是报1,2,3,第二个人每次取4的倍数都是可以的。如此往复一定是第二个人赢。

即存在公式:N=(K+1)*X+M

在本例中K=3,N=20,那么X=5,M=0,如此一来一定是第二个人赢,而如果M!=0,则第一个人报M,第二个人无论报多少,第一个人再重新报M+(K+1),如此第一个人是必胜的。

例子:

http://acm.hdu.edu.cn/showproblem.php?pid=4764

代码:

 1 #include<iostream>
 2 using namespace std;
 3
 4 int main()
 5 {
 6     int N,K;
 7     while(scanf("%d%d",&N,&K))
 8     {
 9         if(N==0)break;
10         else
11         {
12             if((N-1)%(K+1)==0)
13                 printf("Jiang\n");
14             else
15                 printf("Tang\n");
16         }
17     }
18     return 0;
19 }
时间: 2024-12-11 07:28:01

博弈论的相关文章

hdu 1536 S-Nim 博弈论,,求出SG&#39;函数就可以解决

S-Nim Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4975    Accepted Submission(s): 2141 Problem Description Arthur and his sister Caroll have been playing a game called Nim for some time now

UVA 10561 Treblecross(博弈论)

题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=32209 [思路] 博弈论. 根据X分布划分禁区,每个可以放置的块为单独一个游戏.按长度定义状态,构造sg函数.依次试验每一种放法. [代码] 1 #include<cstdio> 2 #include<vector> 3 #include<cstring> 4 #include<algorithm> 5 using names

博弈论的学习之始

今天看了耶鲁大学关于<博弈论>的公开课视频.于是想记录下关于博弈论的学习经历.最近赶上期末,事情超多,唉!不定期观看并记录吧! 视频中没有给出博弈论的具体定义,就不记录了吧!英文名Game Theory. 教授推荐课程书籍:杜塔 <策略与博弈>(课程基础书籍).乔治·沃森<策略>(教授说偏难!).<战略思想>(没看到具体谁的,教授说用来催眠不错!) 第一节课主要讲了博弈的几个原则. 1.不要选严格劣势策略: 2.理性选择造成次优选择: 3.要会换位思考: 4

hdu1856 Brave Game(博弈论)

应该是最基础的那种博弈论的题 (m+1)+多余 == n 如果没有多余,那么就后手赢了 #include<cstdio> int main() { int n; scanf("%d",&n); while(n--){ int x,p; scanf("%d%d",&x,&p); if(x%(p+1)==0 ) printf("second\n"); else printf("first\n")

Part.4【博弈论】

---恢复内容开始--- 不要问我为什么突然跳到Part.4,我懒得解释. 在蔡大神的论文+讲解和HZW的题库下,自己大概是明白什么是博弈论的皮毛了吧. 先说SG定理吧. 对于游戏中的状态,我们给每个状态定义一个必胜态和必败态.区别在于前者可以通过一次操作到达必败态,但后者无法做到(后者在一次操作后所能到达的状态全部都为必胜态) 接着引进SG函数,每个状态都有一个SG值,这个值由它所能到达的状态的SG值决定.(这里的所能到达的状态指的是经过一次操作能到达的状态,下同) SG值有以下性质: SG值

博弈论(转)

有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可.两个人轮流从堆中取物体若干,规定最后取光物体者取胜.这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理.下面我们来分析一下要如何才能够取胜. (一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个.最后取光者得胜. 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后者取胜.因此我们发

【博弈论】威佐夫博弈

威佐夫博弈     威佐夫博弈:有两堆石子,每次一个人可以两堆同时取相同数量的石子,也可以只取其中一堆的石子,最后谁取完谁获胜,请问先手还是后手胜? 对于学过一些博弈论基础的来说,我们需要找到那些能让先手必输的局势,那么由这些局势在规定范围内拓展的局势也是先手必输的局势(但在这里双方自由选取,不适用).我们可以得出一些局势使A必输:(0,0) (1,2) (3,5) (4,7) (6,10) (8,13) (9,15) (11,18) (12,20)……我们称这些局势为奇异局势 不难发现,如果我

HDU 5963 朋友 【博弈论】 (2016年中国大学生程序设计竞赛(合肥))

朋友 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem Description B君在围观一群男生和一群女生玩游戏,具体来说游戏是这样的:给出一棵n个节点的树,这棵树的每条边有一个权值,这个权值只可能是0或1. 在一局游戏开始时,会确定一个节点作为根.接下来从女生开始,双方轮流进行 操作.当一方操作时,他们需要先选择一个不为根的点,满足该点到其父亲的边权为1; 然

博弈论之入门小结

经过几天的学习和刷题,总算对博弈论的基础懂了一些,学习过程中参考了以下两位的总结: 博弈总结        博弈论题目列表 下面列出一些基础博弈的结论定理(证明过程略): (一)巴什博弈(Bash): 一个堆中有n个物体,两人轮流取,每次至少取1个,至多取m个,最后取完者胜. 取胜法则:令n=(m+1)*r+s  (s<=m,r为任意自然数),先取者要想取胜,则要求第一次取时必须取s个. (二)威佐夫博弈(Wythoff): 两个堆中各有若干个物品,两人轮流从某一堆或从两堆中同时取同样多个物品(

工作&ldquo;触雷&rdquo;经历与总结--记博弈论的应用

工作三年,职场受挫.一些值得说或者不值得说的事情,也懒得去记录.无奈,更多时无奈.内心的骄傲或者自负也不值得炫耀.天生骄傲,或者也只是自身内心的呐喊.毕竟,骄傲的人也不会说出来,搞的好像是有点似得. 书归正传.谈回事件的经过. 周末值班,又碰到了产线断网的停线Mail莫名其妙的丢了出来.加上不久前,数据库自动丢出的session高的Mail,或许有某种联系.叙述从如下几个角度展开. 第一,用户面. 没有常规的电话通知,单纯的停线Mail.看到后,第一反应时确认, 根据多次此种,注意是此种,已经明