取石子问题

合集下载

取石子游戏

取石子游戏

取石子游戏
取石子游戏是一种经典的策略游戏,通常由两名玩家轮流进行。

游戏开始时,一堆石子被放在桌子上。

每个玩家在自己的回合中可以选择取走一定数量的石子,但不能取走超过规定的最大数量。

目标是在游戏结束时,取走最后一个石子的玩家获胜。

以下是一种常见的取石子游戏规则:
1. 游戏开始时,一堆石子被放在桌子上。

2. 两名玩家轮流进行,每个玩家在自己的回合中可以选择取走1到M个石子,其中M为规定的最大数量。

3. 玩家必须至少取走1个石子,但不能超过M个石子。

4. 最后一个石子被取走的玩家获胜。

游戏的策略通常是基于数学原理和对对手的预测。

在某些特定的游戏规则下,可以使用数学公式来计算最优策略。

例如,在一堆有N个石子的游戏中,如果规定每个玩家最多可以取走M个石子,那么可以使用以下公式来计算最优策略:
1. 如果N%(M+1)等于0,那么第一个玩家将会输掉游戏。

2. 否则,第一个玩家可以选择取走N%(M+1)个石子,然后无论第二个玩家取走多少个石子,第一个玩家总是可以以同样的方式回应,直到最后一个石子被取走。

这个公式可以帮助玩家计算出在给定规则下的最优策略,从而提高胜利的机会。

需要注意的是,取石子游戏有很多种不同的规则和变体,上述的规则只是其中一种常见的形式。

具体的规则可能会有所不同,所以在参与游戏之前最好明确规定好游戏的规则。

取石子游戏完全揭秘

取石子游戏完全揭秘

取石子游戏完全揭秘由感性认识到理性认识一、游戏 (2)二、从简单入手 (2)三、类比与联想 (6)四、证明 (8)五、推广 (11)六、精华 (12)七、结论 (16)八、总结 (17)一、游戏游戏A:甲乙两人面对若干堆石子,其中每一堆石子的数目可以任意确定。

例如图1所示的初始局面:共n=3堆,其中第一堆的石子数a1=3,第二堆石子数a2=3,第三堆石子数a3=1。

两人轮流按下列规则取走一些石子,游戏的规则如下:每一步应取走至少一枚石子;每一步只能从某一堆中取走部分或全部石子;如果谁无法按规则取子,谁就是输家。

图 1 游戏的一个初始局面游戏B:甲乙双方事先约定一个数m,并且每次取石子的数目不能超过m 个;其余规则同游戏A。

我们关心的是,对于一个初始局面,究竟是先行者(甲)有必胜策略,还是后行者(乙)有必胜策略。

下面,我们从简单入手,先来研究研究这个游戏的一些性质。

二、从简单入手用一个n元组(a1, a2, …, a n),来描述游戏过程中的一个局面。

可以用3元组(3, 3, 1)来描述图1所示的局面。

改变这个n元组中数的顺序,仍然代表同一个局面。

(3, 3, 1)和(1, 3, 3),可以看作是同一个局面。

如果初始局面只有一堆石子,则甲有必胜策略。

甲可以一次把这一堆石子全部取完,这样乙就无石子可取了。

如果初始局面有两堆石子,而且这两堆石子的数目相等,则乙有必胜策略。

因为有两堆石子,所以甲无法一次取完;如果甲在一堆中取若干石子,乙便在另一堆中取同样数目的石子;根据对称性,在甲取了石子之后,乙总有石子可取;石子总数一直在减少,最后必定是甲无石子可取。

对于初始局面(1),甲有必胜策略,而初始局面(3, 3),乙有必胜策略。

局面的加法:(a1, a2, …, a n) + (b1, b2, …, b m) = (a1, a2, …, a n, b1, b2, …, b m)。

(3) + (3) + (1) = (3, 3) + (1) = (3, 3, 1)。

取石子游戏完全揭秘

取石子游戏完全揭秘

由感性认识到理性认识一、游戏 (2)二、从简单入手 (2)三、类比与联想 (6)四、证明 (8)五、推广 (11)六、精华 (12)七、结论 (16)八、总结 (17)一、游戏游戏A:甲乙两人面对若干堆石子,其中每一堆石子的数目可以任意确定。

例如图1所示的初始局面:共n=3堆,其中第一堆的石子数a1=3,第二堆石子数a2=3,第三堆石子数a3=1。

两人轮流按下列规则取走一些石子,游戏的规则如下: 每一步应取走至少一枚石子;每一步只能从某一堆中取走部分或全部石子;如果谁无法按规则取子,谁就是输家。

图 1 游戏的一个初始局面游戏B:甲乙双方事先约定一个数m,并且每次取石子的数目不能超过m个;其余规则同游戏A。

我们关心的是,对于一个初始局面,究竟是先行者(甲)有必胜策略,还是后行者(乙)有必胜策略。

下面,我们从简单入手,先来研究研究这个游戏的一些性质。

二、从简单入手☞用一个n元组(a1, a2, …, a n),来描述游戏过程中的一个局面。

☝可以用3元组(3, 3, 1)来描述图1所示的局面。

改变这个n元组中数的顺序,仍然代表同一个局面。

☝(3, 3, 1)和(1, 3, 3),可以看作是同一个局面。

如果初始局面只有一堆石子,则甲有必胜策略。

甲可以一次把这一堆石子全部取完,这样乙就无石子可取了。

如果初始局面有两堆石子,而且这两堆石子的数目相等,则乙有必胜策略。

因为有两堆石子,所以甲无法一次取完;如果甲在一堆中取若干石子,乙便在另一堆中取同样数目的石子;根据对称性,在甲取了石子之后,乙总有石子可取;石子总数一直在减少,最后必定是甲无石子可取。

☝对于初始局面(1),甲有必胜策略,而初始局面(3, 3),乙有必胜策略。

☞局面的加法:(a1, a2, …, a n) + (b1, b2, …, b m) = (a1, a2, …, a n, b1, b2, …, b m)。

☝(3) + (3) + (1) = (3, 3) + (1) = (3, 3, 1)。

博弈论取石子问题

博弈论取石子问题

博弈论取石子问题
博弈论取石子问题是一类经典的博弈问题,也被称为Nim游戏。

这个问题一般描述为:有一堆石子,两名玩家轮流从中取出若干个石子,每次取石子的数量有限制(例如,每次最多只能取1个或者2个),最终取光所有石子的玩家获胜。

在这个问题中,两位玩家都采取最优策略,并且可以假设每位玩家都会尽力阻止对方获胜。

这样,对于每一轮的取石子操作,可以通过数学的方法来判断哪位玩家有必胜策略。

一般来说,博弈论取石子问题可以通过异或运算来求解。

具体思路如下:
1. 通过异或运算计算出所有石子数量的异或和。

2. 如果异或和为0,表示当前状态下无论怎么取石子,都无法保证必胜,此时当前玩家必输。

3. 如果异或和不为0,表示当前状态下存在某种取法,可以保证必胜。

具体的取法是找到最高位上的1,然后将某一堆石子数量减去该最高位1的数量,使得新的异或和为0。

通过上述思路,可以快速计算出哪位玩家具有必胜策略。

当然,如果可以通过编程的方式来模拟和计算,会更加直观和方便。

几种两人轮流取石子游戏的输赢规律及取胜策略 续篇

几种两人轮流取石子游戏的输赢规律及取胜策略 续篇

几种两人轮流取石子游戏的输赢规律及取胜策略续篇上篇中第八种情况的推论有误,不能一概而论,因而第九种也有误。

特此更正。

下面再看几种情况。

分析的基础是上篇中的第四种情况。

引用如下:有三堆石子,个数分别是1、2、3个。

分析:若先取的把只有一个的一堆取完,则变成上篇中的第二种情况,后取的赢;若先取的从两个的一堆中取一个,则后取的把三个的一堆取完,变成第一种情况,后取的赢;若先取的把两个的一堆取完,变成上篇中的第二种情况,还是后取的赢。

先取的从三个的一堆中取,不论取几个,用同样的方法进行分析,后取的都有办法赢。

所以,先取的不论如何取法,后取的都有应对之策保证必赢。

一、有三堆石子,个数分别是1、3、4个。

分析:先取的只要从4个一堆中取出2个,就变成上篇中的第四种情况,所以先取的必赢。

二、有三堆石子,个数分别是1、4、5个。

分析:若先取的把只有一个的一堆取完,则变成上篇中的第二种情况,后取的赢;若先取的从4个的一堆中取一个,则后取的从5个的一堆中取3个,变成上篇中的第四种情况,后取的赢;其他情况不论先取的从4个或5个的一堆中取几个,后取的都有应对之策取胜;所以,后取的必赢。

三、有三堆石子,个数分别是1、5、6个。

分析:先取的只要从6个一堆中取出2个,就变成第二种情况,所以先取的必赢。

四、有三堆石子,个数分别是1、6、7个。

分析:若先取的把只有一个的一堆取完,则变成上篇中的第二种情况,后取的赢;若先取的从6个的一堆中取一个,则后取的从7个的一堆中取3个,变成第二种情况,后取的赢;其他情况不论先取的从6个或7个的一堆中取几个,后取的都有应对之策取胜;所以,后取的必赢。

五、有三堆石子,个数分别是1、7、8个。

分析:先取的只要从8个一堆中取出2个,就变成第四种情况,所以先取的必赢。

根据以上五种情况可以得出:三堆石子中有一堆是1个,其他两堆的个数是相邻数的输赢规律及取胜策略是:石子个数在中间的数若是偶数,先取的必输,因为先取的不论怎么取都会使后取的有机会找到取后最终出现两堆石子个数相同的情况,所以先取的必输;石子个数在中间的数若是奇数,先取的必赢,因为先取的只要从个数最多的一堆中取出2个就变成上一种情况,所以先取的必赢。

取石子游戏类分析的分析讨论

取石子游戏类分析的分析讨论

MisèreNim
基本规则同Nim Game问题,胜负判定是谁 不能继续取石子,谁就赢了。
分析
1)所有石子堆的数目都为1:
显然,若有偶数堆石子堆,则必胜,否则必败。 2)如果恰好只有一堆石子数目大于1。 我们可以把这堆石子取完或者取得只剩下1,使得 1 只剩下奇数堆数目为1的石子留给对方,由1),必 胜。 3)如果有至少2堆石子的数目大于1。 考虑⊕值: 若⊕值不为0,则按照NimGame走法取石。这样, 当对手某次取完石子后,肯定会出现2)的情况, 则必胜。
方法1
动态规划: 设f(a , b)表示两堆分别剩a颗和b颗石子时的 胜负状态。则, f(a ,b) = f(a-k ,b) or f(a ,b-k) or f(a-k ,b-k) 时间复杂度达到了o(n3)
改进
因为,
f(a , a),先手必胜 f(a , b)= f(b , a) 当f(a , b)为必败态时,对于所有c≠b, f(a ,c)必胜。
分析
n不被21整除 :使用同样策略,必胜。 n被21整除:
n=21,必败。 存在某个k,使得k + ak不被21整除 :
第一步拿掉k个,然后对方会拿掉ak个,剩下n-k-ak 个 ,到达n不被21整除的状态,因此必胜。
其它情况,必败。
Wythoff Game
问题描述: 问题描述: 有两堆各若干个石子,两个人轮流从某一 堆或同时从两堆中取同样多的石子,规定 每次至少取一个,多者不限,最后取光者 得胜。
n = 4, {1,1,2,2} 第一步若拿掉一堆为2的石堆,则只剩一堆>1 的石堆。必败。 若拿掉一堆为1的石堆,对方也拿掉一堆为1的 石堆,无论我们接下来怎么取,都只剩一堆>1 >1 的石堆。必败。 在一堆为2的石堆中拿掉一颗石子,只剩一堆 >1的石堆。必败。 n = 4,{1,1,2,3} 我们可以在3的石堆中拿掉一颗石子,变为一 个xor值为0的必败状态,所以必胜。

取石子游戏

取石子游戏

从三道例题来看一类常见博弈问题的思维方法。

长郡中学金恺在博弈问题中,有一类最为一般与常见,概括来说满足4个基本要点:1、双人轮流取子,输赢只与当前的局面有关,而与之前怎么取的无关;2、取子的方法可以是多种不同的取法相结合。

13、某个人无法按规则取了就算输——即没有后继状态的状态为败局;4、石子越取越少,或者存在某种特殊的性质,使得状态不可能出现循环——状态存在拓扑顺序,能够采用递推的方法解决(但效率不高,因为没有利用走棋规则的特点);对于这类博弈题,我们往往希望根据走棋特点找到一种简单的性质,然后根据这个性质将Array所有状态进行划分:即将所有状态分为两部分W、L,满足性质A的状态划到集合L,不满足性质A的状态划到集合W:对于集合L中的状态l,证明l的后继状态都在W中;对于集合W中的状态w,证明w至少有一个后继在L中。

则W中的所有状态都是胜局,L中的所有状态都是败局。

对于输入的一个状态,只要判断它是否满足性质A即可以知道它是胜是败。

但是性质A可能非常隐蔽、复杂,要找到性质A可能却要花费很多时间和心智。

这类问题由于取子方法有很多很多,所以没有约定俗成的公式2。

抓住取子方法的特点、周密深入的分析、找到问题的本质是解决这类问题的最直接的办法。

在很多情况下,找规律也是一个不错的选择,因为大多数情况下性质A的形式是非常简单的(这正体现了数学中简单即美的最高境界),往往可以通过观察+猜想找到正确的结果。

而一旦找到了某个性质A对于小数据都成立(可用程序检测),那么用归纳法证明是比较简单的。

本文就通过几个例子,来探索解决这类问题的思维方法。

问题1:取火柴游戏题目来源:姚金宇原创题目描述:有三堆火材,分别为a,b,c根。

有两个人在做如下游戏:游戏者任意拿走其中一堆火柴,再在剩下的两堆里任取一堆任意分成两堆(每堆至少1根)。

两人轮流如此,谁无法这样做就算输了。

输入格式:有n组数据:每一行三个数a,b,c,满足1≤a,b,c≤1,000,000,000。

取石子游戏的策略及其应用

取石子游戏的策略及其应用

取⽯⼦游戏的策略及其应⽤有⼀种很有意思的游戏,就是有物体若⼲堆,可以是⽯⼦或是围棋⼦等等均可。

两个⼈轮流从堆中取物体若⼲,规定最后取光物体者取胜。

取⽯⼦游戏是我国民间流传已久的⼀种博奕,在国外亦称Nim游戏。

别看这游戏极其简单,却蕴含着深刻的道理。

下⾯我们来分析⼀下要如何才能够取胜。

游戏Ⅰ有若⼲堆任意数⽬的⼩⽯⼦{a1,a2,…,a m}(m≥1),两⼈轮流取⽯⼦,每⼈每次可以从其中任意⼀堆中取,每次可以取1、2、3、……或k(1≤k≤ min{a1,a2,…,a m})颗⽯⼦,把⽯⼦取完的⼈为胜者。

采⽤符号{a1,a2,…,a m;k}来代表游戏Ⅰ中⼩⽯⼦的初始状况和限制条件,⼀个⼈取⼀次⽯⼦实际上就是把{a1,a2,…,am;k}中某个分量ai(1≤i≤m)减⼩为ai′,即{a1,a2,…,ai,…,a m;k}—→{a1,a2,…,ai′,…,a m;k}(0≤a i<a i),我们把这种取⼀次⽯⼦使数组发⽣的变换称为T变换,根据现成博奕论先驱冯·诺伊曼(VonNeumann)的“完全确定信息游戏必定存在⼀种确定的获胜策略”的经典理论,要么对先取者存在某种取法,即某个T变换,⽆论后取者如何取,先取者总有相应对策,直⾄最终取得胜利;要么⽆论先取者如何取,后取者可以找到某种T变换,保证后取者总有相应策略获胜。

为了解决游戏{a1,a2,…,am;k}的对策,我们先看⼀个简单的例⼦。

例1 桌上放着⼀堆⼩⽯⼦⼀共100颗,两⼈(甲、⼄)轮流取,每次可以取1⾄10颗,取完的⼈为胜者,怎样才能取胜?分析这个问题实际上是取⽯⼦游戏的特殊情形{100;10},我们利⽤倒推法:容易看出11是取胜的关键数学,因为到此时,不论对⽅(甲)取多少颗(⼤于0且⼩于11),总留下⼤于0且⼩于11颗⽯⼦,这样⼄⽅⼀次取完即获得胜利。

同样地分析,要取到11必须取到22,33,44,55,66,77,88,99,这样我们就知道了获胜之道:①先取1颗⽯⼦,留下99颗,然后对⽅取a(1≤a≤10)颗,⼰⽅取(11—a)颗,就总能掌握这种致胜的关键数,从⽽确保获胜。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

取石子游戏Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 23080 Accepted: 7190Description有两堆石子,数量任意,可以不同。

游戏开始由两个人轮流取石子。

游戏规定,每次有两种不同的取法,一是可以在任意的一堆中取走任意多的石子;二是可以在两堆中同时取走相同数量的石子。

最后把石子全部取完者为胜者。

现在给出初始的两堆石子的数目,如果轮到你先取,假设双方都采取最好的策略,问最后你是胜者还是败者。

Input输入包含若干行,表示若干种石子的初始情况,其中每一行包含两个非负整数a和b,表示两堆石子的数目,a和b都不大于1,000,000,000。

Output输出对应也有若干行,每行包含一个数字1或0,如果最后你是胜者,则为1,反之,则为0。

Sample Input2 18 44 7Sample Output1SourceNOI纠结了好久,也找同学玩了这个游戏,始终没发现什么规律。

后来想起高中一起玩(1,3,5,7)抓石子游戏的同学,就想打电话咨询顺便难一难他,谁知道直接拽给我一个:威佐夫博弈...百度了下终于懂了。

刚开始也想到列出前几种必胜组合,可是脑袋抽风了,(3,5)(5,3)算成两种情况。

= =,我都搞不清楚当时怎么想的了。

下面是度娘关于威佐夫博弈的百科:威佐夫博奕(Wythoff Game):有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光者得胜。

这种情况下是颇为复杂的。

我们用(ak,bk)(ak ≤ bk ,k=0,1,2,...,n)表示两堆物品的数量并称其为局势,如果甲面对(0,0),那么甲已经输了,这种局势我们称为奇异局势。

前几个奇异局势是:(0,0)、(1,2)、(3,5)、(4,7)、(6,10)、(8,13)、(9,15)、(11,18)、(12,20)。

可以看出,a0=b0=0,ak是未在前面出现过的最小自然数,而bk= ak + k。

奇异局势有如下三条性质:1。

任何自然数都包含在一个且仅有一个奇异局势中。

由于ak是未在前面出现过的最小自然数,所以有ak> ak-1 ,而bk= ak + k > ak-1 + k-1 = bk-1 > ak-1 。

所以性质1成立。

2。

任意操作都可将奇异局势变为非奇异局势。

事实上,若只改变奇异局势(ak,bk)的某一个分量,那么另一个分量不可能在其他奇异局势中,所以必然是非奇异局势。

如果使(ak,bk)的两个分量同时减少,则由于其差不变,且不可能是其他奇异局势的差,因此也是非奇异局势。

3。

采用适当的方法,可以将非奇异局势变为奇异局势。

假设面对的局势是(a,b),若b = a,则同时从两堆中取走 a 个物体,就变为了奇异局势(0,0);如果a = ak,b >bk那么,取走b - bk个物体,即变为奇异局势;如果a = ak,b <bk则同时从两堆中拿走ak - ab - ak个物体变为奇异局势(ab - ak , ab - ak+ b - ak);如果a >ak,b= ak + k 则从第一堆中拿走多余的数量a - ak即可;如果a <ak,b= ak + k,分两种情况,第一种,a=aj(j < k)从第二堆里面拿走b - bj即可;第二种,a=bj(j < k)从第二堆里面拿走b - aj即可。

结论:两个人如果都采用正确操作,那么面对非奇异局势,先拿者必胜;反之,则后拿者取胜。

那么任给一个局势(a,b),怎样判断它是不是奇异局势呢?我们有如下公式:ak =[k(1+√5)/2],bk= ak + k (k=0,1,2,...n 方括号表示取整函数) 奇妙的是其中出现了黄金分割数(1+√5)/2 = 1.618...因此,由ak,bk组成的矩形近似为黄金矩形,由于2/(1+√5)=(√5-1)/2,可以先求出j=[a(√5-1)/2],若a= [j(1+√5)/2],那么a = aj,bj = aj + j,若不等于,那么a = aj+1,bj+1 = aj+1 + j + 1,若都不是,那么就不是奇异局势。

然后再按照上述法则进行,一定会遇到奇异局势。

下面是某大牛的严谨数学证明:版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明/logs/42826226.html大致上是这样的:有两堆石子,不妨先认为一堆有10,另一堆有15个,双方轮流取走一些石子,合法的取法有如下两种:1)在一堆石子中取走任意多颗;2)在两堆石子中取走相同多的任意颗;约定取走最后一颗石子的人为赢家,求必败态(必胜策略)。

这个可以说是MR.Wythoff(Wythoff于1907年提出此游戏)一生全部的贡献吧,我在一篇日志里就说完有点残酷。

这个问题好像被用作编程竞赛的题目,网上有很多把它Label为POJ1067,不过如果学编程的人不知道Beatty定理和Beatty序列,他们所做的只能是找规律而已。

简单分析一下,容易知道两堆石头地位是一样的,我们用余下的石子数(a,b)来表示状态,并画在平面直角坐标系上。

用之前的定理:有限个结点的无回路有向图有唯一的核中所述的方法寻找必败态。

先标出(0,0),然后划去所有(0,k),(k,0),(k,k)的格点;然后找y=x上方未被划去的格点,标出(1,2),然后划去(1,k),(k,2),(1+k,2+k),同时标出对称点(2,1),划去(2,k),(1,k),(2+k,1+k);然后在未被划去的点中在y=x上方再找出(3,5)。

按照这样的方法做下去,如果只列出a<=b的必败态的话,前面的一些是(0,0),(1,2),(3,5), (4,7),(6,10),…接下来就是找规律的过程了,可能很辛苦,但是我写得也不容易,而且我暂时没有看到其他地方有这样的证明过程。

忽略(0,0),记第n组必败态为(a[n],b[n])命题一:a[n+1]=前n组必败态中未出现过的最小正整数[分析]:如果a[n+1]不是未出现的数中最小的,那么可以从a[n+1]的状态走到一个使a[n+1]更小的状态,和我们的寻找方法矛盾。

命题二:b[n]=a[n]+n[分析]:归纳法:若前k个必败态分别为,下证:第k+1个必败态为从该第k+1个必败态出发,一共可能走向三类状态,从左边堆拿走一些,从右边堆拿走一些,或者从两堆中拿走一些.下面证明这三类都是胜态.情况一:由命题一,任意一个比a[k+1]小的数都在之前的必败态中出现过,一旦把左边堆拿少了,我们只要再拿成那个数相应的必败态即可。

情况二(从右边堆拿走不太多):这使得两堆之间的差变小了,比如拿成了,则可再拿成;情况二(从右边堆拿走很多):使得右边一堆比左边一堆更少,这时类似于情况一,比如拿成了 (其中a[m]<a[k+1]) ,则可再拿成;情况三:比如拿成,则可再拿成.综上所述,任何从出发走向的状态都可以走回核中.故原命题成立.以上两个命题对于确定(a[n],b[n])是完备的了,给定(0,0)然后按照这两个命题,就可以写出(1,2),(3,5),(4,7),…这样我们得到了这个数列的递推式,以下我们把这两个命题当成是(a[n],b[n])的定义。

先证明两个性质:性质一:核中的a[n],b[n]遍历所有正整数。

[分析]:由命题一,二可得a[n],b[n]是递增的,且由a[n]的定义显然。

性质二:A={a[n]:n=1,2,3,…},B={b[n]:n=1,2,3,…},则集合A,B不交。

[分析]:由核是内固集,显然。

看到这里大家有没有想到Beatty序列呢,实际上a[n]和b[n]就是一个Beatty序列。

,有,解方程得,到此,我们找到了该必败态的通项公式。

实际上这组Beatty序列还有一些别的性质,比如当一个数是Fibonacci数的时候,另一个数也是Fibonacci 数;而且两者的比值也越来越接近黄金比,这些性质在得到通项公式之后不难证明。

总的来说,这个问题给我们了哪些启示呢?首先用定理所说的方法找核,然后给出核的规律(递推,或是通项)并且证明。

最后附上一张对应的必败态图.有限个结点的无回路有向图有唯一的核的证明:::::。

博弈的图论模型——必败态与核版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明/logs/42653430.html桌子上有15个石子,每人每次可以拿去1个或3个石子,拿走最后一个石子的人赢,列出所有的必败态:0,2,4,6,8,10,12,14。

状态作为结点可以画一张有向图,下面这张图就是这个游戏所对应的:我只列了不大于6的状态,回顾一下胜态和必败态的性质:胜态一定可以通过某种策略走向必败态;而必败态采取任何策略都将走向胜态。

用图论的话来说,因为必败态只能走向胜态,所以任何两个必败态结点之间不可能存在边;因为胜态总能走到必败态,所以对任何一个非必败态的结点,一定存在一个从它指向必败态不妨看看左图中的0,2,4,6,亲自体会一下。

定义:有向图中,集合X中任意两点之间无边,称集合X为内固集。

定义:有向图中,任意不在集合X中的点存在一条指向集合X的边,称集合X为外固集。

定义:有向图中,集合X 既是外固集,又是内固集,称集合X为核。

显然,内,外固集的定义正好针对上面的两句话,而核就是包含所有必败态的集合。

定理:双人博弈中,约定走最后一步为胜,如果有核存在,则其中一方有不败策略。

证明:不妨设A先行动,初始状态不在核中,由于核是外固集,A一定可以采取某种策略把状B;由于核是外固集,所以B不管采取什么策略,都将走出核,所以轮到A的时候,A又可以言之,A可以使B永远面临核内的状态。

无路可走的状态不可能在核外,因为核外总能走到核如果初始状态不在核中,那么利用同样的想法易知B有不败策略。

以上的定理意义是非凡的,虽然这个定理在证明之前我们其实就已经了解了核与必败态的紧博弈游戏来说,找出核是核心问题。

在此之前,先得考察核得存在性:定理:有限个结点的无回路有向图有唯一的核。

证明:核可以用如下的方式找出:首先找出没有后继结点的点集P[1](最基本的必败态,比如上图中的结点0),然后找到那些指向P[1]的结点集合为N[1](最基本的胜态,比如上图的结点1和结点3);然后,除去P[1]和N[1]中的点并除去和这些点关联的边,继续寻找没有后继结点的点集P[2](更高级的必败态,比如上图中的结点2),依次类推,则最后的核为P=P[1]并P[2]并…并P[n]。

很容易说明如此找到的核是内固集,也是外固集,满足核的定义,下面说明一下核为什么不是空集:实际上P[1]就不是空集,对一个没有回路的有向图来说,从图上的某一点出发,就无法回到原来到过的点。

相关文档
最新文档