博弈论
Jerry99s
OI -> ACM -> AI
展开
-
博弈论之NIM游戏与SG函数
前言: 恩,本文会简要介绍一下NIM取石子游戏与SG函数,并附上一些有趣的例题。 1.简单的取石子游戏 首先,让我们来看一看最简单的取石子游戏。 游戏1 规则: 有x个石子,两人轮流取,最多取y个,不能不取,没得取的人输,两个人都按照最优策略进行游戏,问先手必胜的充要条件。 答案: x m转载 2015-09-19 21:36:15 · 1033 阅读 · 0 评论 -
OpenJudge1350 Euclid's Game
题目:http://noi.openjudge.cn/ch0402/1350/ 分析: 1.当n>=2*m-1时先手必胜:当n=2m显然胜。当n=2m-1,可以变成m-1,m然后此时先手必败,则原先手必胜。当n>2m,设n%m=r,则可以变成r,m或r+m,m 如果r,m必胜则r+m,m必败,即先手控场。 2.当n<2*m-1时:当n==m或n=m+1或m==1时先手必胜,其余由n-m,m的状原创 2015-10-29 20:51:02 · 573 阅读 · 2 评论 -
博弈论
一、SG函数 若一个局面S,做一步操作能够到达局面Xi 则一个局面S的SG函数值SG(S),为除所有SG(Xi) 以外的最小非负整数 那么最经典的NIM游戏中,n堆石子,可拆分为n个子博弈,总的SG函数值为所有博弈SG值的异或和;考虑一个堆中石子数为x,则下一步能到0,1,2,…x-1,所以每一个x的SG值就是它本身;因此经典NIM游戏的SG函数值就是所有堆石子的异或和 求SG函数值模板:原创 2018-01-25 16:08:01 · 312 阅读 · 0 评论 -
uva11892 ENimEN
题意: n堆石子,两人轮流取,每次取一堆,取非0个,但是如果对手没有把这堆取完,那么还要在这堆取。 分析: 一下为先手面临的状态: 1堆1个的石子,胜 1堆1个的石子+X堆>1的石子,胜 (每次把非1的堆取到剩1个,留给对手取) 2堆1个的石子,负 2堆1个的石子+1堆>1的石子,胜 (一次取完非1的堆,让对手面临负态) 2堆1个的石子+2堆>1的石子,胜 (把非1的堆取到原创 2018-01-25 16:51:50 · 233 阅读 · 0 评论