版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、ACM程序设计程序设计杭州电子科技大学 刘春英2022-4-232今天,今天,你你 了吗?了吗?AC2022-4-233每周一星每周一星(7 7):):墨茶墨茶 2022-4-234第第八讲讲组合博弈入门组合博弈入门(Simple Game Theory)2022-4-235导引游戏导引游戏(1) (1) 玩家:玩家:2 2人;人;(2) (2) 道具:道具:2323张扑克牌;张扑克牌;(3) (3) 规则:规则:n游戏双方轮流取牌;游戏双方轮流取牌;n每人每次仅限于取每人每次仅限于取1 1张、张、2 2张或张或3 3张牌;张牌;n扑克牌取光,则游戏结束;扑克牌取光,则游戏结束;n最后取牌的一
2、方为胜者。最后取牌的一方为胜者。2022-4-236基本思路?基本思路?请陈述自己的观点请陈述自己的观点2022-4-237第一部分第一部分简单取子游戏简单取子游戏(组合游戏的一种)(组合游戏的一种)2022-4-238什么是组合游戏什么是组合游戏(1) 有两个玩家;(2) 游戏的操作状态是一个有限的集合(比如:限定大小的棋盘);(3) 游戏双方轮流操作;(4) 双方的每次操作必须符合游戏规定;(5) 当一方不能将游戏继续进行的时候,游戏结束,同时,对方为获胜方;(6) 无论如何操作,游戏总能在有限次操作后结束;2022-4-239概念概念: :必败点和必胜点必败点和必胜点(P(P点点 &am
3、p; N& N点点) )n必败点必败点(P(P点点) ) : :前一个选手(P Previous player)将取胜的位置称为必败点。 n必胜点必胜点(N(N点点) ) : :下下一个选手(Next player)将取胜的位置称为必胜点。 2022-4-2310必败必败( (必胜必胜) )点属性点属性(1) (1) 所有终结点是必败点(所有终结点是必败点(P P点);点);(2) (2) 从任何必胜点(从任何必胜点(N N点)操作,至少有点)操作,至少有一种方法可以进入必败点(一种方法可以进入必败点(P P点);点);(3)(3)无论如何操作,无论如何操作, 从必败点(从必败点(P
4、P点)都点)都只能进入必胜点(只能进入必胜点(N N点)点). .2022-4-2311取子游戏算法实现取子游戏算法实现 步步骤骤1:1:将所有终结位置标记为必败点(将所有终结位置标记为必败点(P P点);点);步骤步骤2: 2: 将所有一步操作能进入必败点(将所有一步操作能进入必败点(P P点)的点)的位置标记为必胜点(位置标记为必胜点(N N点)点)步骤步骤3:3:如果从某个点开始的所有一步操作都只能如果从某个点开始的所有一步操作都只能进入必胜点(进入必胜点(N N点)点) ,则将该点标记为必败点,则将该点标记为必败点(P P点)点) ;步骤步骤4: 4: 如果在步骤如果在步骤3 3未能找
5、到新的必败(未能找到新的必败(P P点),点),则算法终止;否则,返回到步骤则算法终止;否则,返回到步骤2 2。2022-4-2312课内练习课内练习: :nSubtraction Games:subtraction set S = 1, 3, 4x : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14Pos: P N P N N N N P N P N N N N P2022-4-2313实战练习实战练习nkikiskikis game game 2022-4-2314第二部分第二部分NimNim游戏游戏2022-4-2315NimNim游戏简介游戏简介(1)有两个玩家;
6、(2)有三堆扑克牌(比如:可以分别是 5,7,9张);(3)游戏双方轮流操作;(4)玩家的每次操作是选择其中某一堆牌,然后从中取走任意张;(5)最后一次取牌的一方为获胜方;2022-4-23162022-4-2317初步分析初步分析n(0, 0, 0) n(0, 0, x) n(0, 1, 1) n(0, k, k) nP-position nP-position nP-position nN-position n(14, 35, 46) n? 2022-4-2318引入概念引入概念:NimNim-Sum-Sumn定义定义: : 假设假设 (xm x0)2 和和(ym y0)2 的的nim-s
7、um是是(zm z0)2,则我们表示成则我们表示成 (xm x0)2 (ym y0)2 = (zm z0)2, 这里这里,zk = xk + yk (mod 2)(k=0m).2022-4-2319定理一:定理一: 对于对于nimnim游戏的某个位置游戏的某个位置(x(x1 1,x,x2 2,x,x3 3),),当当且仅当它各部分的且仅当它各部分的nimnim-sum-sum等于等于0 0时(即时(即x x1 1 x x2 2 x x3 3=0=0),则当前位于必败点。),则当前位于必败点。定理一也适用于更多堆的情况定理一也适用于更多堆的情况2022-4-2320定理一的证明定理一的证明 20
8、22-4-2321思考(思考(1):):n有了定理一,如果判断某个游戏有了定理一,如果判断某个游戏的先手是输还是赢?的先手是输还是赢?2022-4-2322思考(思考(2):):n对于必胜点,如何判断有几种可对于必胜点,如何判断有几种可行的操作方案?行的操作方案?2022-4-2323实例分析实例分析(HDOJ_1850)nBeing a Good Being a Good Boy in Spring Boy in Spring FestivalFestival 2022-4-2324第三部分第三部分Graph Games &Graph Games &Sprague-Grund
9、y Sprague-Grundy FunctionFunction2022-4-2325What is the graph game ?(1) Player I moves first, starting at x0.(2) Players alternate moves.(3) At position x, the player whose turn it is to move chooses a position y F(x).(4) The player who is confronted with a terminal position at his turn, and thus ca
10、nnot move, loses.2022-4-2326Example about graph game:0,0,01,0,00,0,10,1,05,7,92,0,02022-4-2327The Sprague-Grundy Function.Definition: The Sprague-Grundy function of a graph, (X,F), is a function, g, defined on X and taking non-negative integer values, such thatg(x) =minn 0 : ng(y) for y F(x). (1)In
11、words, g(x) the smallest non-negative integer not found among the Sprague-Grundy values of the followers of x.g(x) =mexg(y) : y F(x). (2)2022-4-2328Use of the Sprague-Grundy Function:P-positions: Positions x for which g(x) = 0 N-positions: Positions x for which g(x) 0 2022-4-2329Exercise:nWhat is th
12、e SG-value of the subtraction game with subtraction set S = 1, 2, 3?x 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14. . .g(x) 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2. . .2022-4-2330Question:What can the S-G value describe?2022-4-2331Part 4:Sums of Combinatorial Games2022-4-2332What is so-called “Sums of Combinatorial Gam
13、es”?2022-4-2333Theorem 2.If gi is the Sprague-Grundy function of Gi , i = 1, . . . , n, then G = G1 + + Gn has Sprague-Grundy function g(x1, . . . , xn) = g1(x1) gn(xn).2022-4-2334Applications:Sums of three Subtraction Games.In the first game: m = 3 and the pile has 9 chips. In the second: m = 5 and
14、 the pile has 10 chips. In the third:m = 7 and the pile has 14c hips.g(9, 10, 14) =?2022-4-2335附:参考源码(HDOJ-1536)n#include#include#includeusing namespace std;int k,a100,f10001;int mex(int p) int i,t; bool g101=0; for(i=0;ik;i+) t=p-ai; if(t0) break; if(ft=-1) ft=mex(t); gft=1; for(i=0;i+) if(!gi) ret
15、urn i; nint main() int n,i,m,t,s; while(scanf(%d,&k),k) for(i=0;ik;i+) scanf(%d,&ai); sort(a,a+k); memset(f,-1,sizeof(f); f0=0; scanf(%d,&n); while(n-) scanf(%d,&m); s=0; while(m-) scanf(%d,&t); if(ft=-1) ft=mex(t); s=sft; if(s=0) printf(L); else printf(W); printf(n); 2022-4-2336课后练习n20082008ACM ACM ProgrammingProgrammingExercise(12Exercise(12)_)_博弈入门博弈入门 n1517 A Multiplication Game n1079 Calendar Game n2147 k
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025 网络基础中网络服务质量保障的服务链编排与优化课件
- 数据中心能耗监测与管控系统开发项目可行性研究报告
- 特戊酰氯可行性研究报告
- 升降课桌椅项目可行性研究报告
- 棉花项目可行性研究报告
- 2026年及未来5年市场数据中国洗发沐浴行业市场深度研究及投资规划建议报告
- 行政复议的范围程序和决定
- 2026年及未来5年市场数据中国商铺地产行业发展运行现状及投资潜力预测报告
- 信息技术信息系统在玉石雕刻工作室作品设计与生产进度管理中的应用课件
- 2025 高中信息技术数据与计算之算法的匹配算法课件
- 2025浙江杭州临安文商旅集团有限公司招聘工作人员4人笔试历年备考题库附带答案详解
- 2026四川巴中市通江县红峰国资本投资运营集团限公司公开招聘9人易考易错模拟试题(共500题)试卷后附参考答案
- TCECS10287-2023钢筋连接用直螺纹套筒
- 农产品质量安全知识培训
- 南极洲地理介绍课件
- 土地盐碱化课件
- 江苏省幼儿园教育技术装备标准
- 外科学课件-运动系统慢性损伤
- 古建筑油漆彩绘施工方案
- GB/T 30600-2014 高标准农田建设 通则(高清版)
- 畜牧兽医专业《猪生产学》电子教案
评论
0/150
提交评论