人人书

博弈论:决策制胜的法则全文阅读

外国小说文学理论侦探推理惊悚悬疑传记回忆杂文随笔诗歌戏曲小故事
人人书 > 科普学习 > 博弈论:决策制胜的法则

策略的定义

书籍名:《博弈论:决策制胜的法则》    作者:乔迪·德罗夫
推荐阅读:博弈论:决策制胜的法则txt下载 博弈论:决策制胜的法则笔趣阁 博弈论:决策制胜的法则顶点 博弈论:决策制胜的法则快眼 博弈论:决策制胜的法则sodu
上一章目录下一章
    《博弈论:决策制胜的法则》策略的定义,页面无弹窗的全文阅读!



接下来,我们首先分析只有一堆棋子的游戏,玩家每次可以拿走不同数量的棋子,该数量大于等于1,小于等于n。为此,我们要分析两种具体的情况,一并做出解释。其中最简单的玩法如下:

游戏1(双人):逢20者胜

桌上放着20枚同色棋子,双方轮流拿走一到两枚。拿走最后一枚者胜。两位玩家中,谁占优势,第一位还是第二位?如何确保自己一定能赢?如果棋子数变了,情况还会如此吗?如果游戏目的变为拿走最后一枚棋子者输呢?这个游戏非常简单,我们可以对其进行全面分析,从而确定制胜策略,并将其推广至任意棋子数的游戏。如果你不了解这个游戏,那么在我们进一步分析之前,可以先找一位搭档来玩几次,还是很有意思的,然后再来回答上述问题。

玩家很快就会发现,只要谁在桌上留下三枚棋子,那他下一轮就赢了。能发现这一点很不错,可要想赢并没有那么简单,因为我们先要知道怎么才能刚好留下三枚棋子。现在我们已知拿走第17枚棋子的人会赢,也就是减少的棋子数为17。然后我们倒推一下就会发现,留下6枚棋子的人也会赢。以此类推,只要玩家留在桌上的棋子数是3的倍数,那他就一定会赢。这样我们就可以来制定制胜策略了:如果一开始有20枚棋子,那么第一位玩家只要在第一轮就拿走2枚棋子,他就一定会赢,因为他留在桌上的棋子数将一直是3的倍数(如果第二位玩家拿走1枚,那第一位玩家就拿走2枚,反之亦然)。因此,在这个游戏中,第一位玩家占优势,因为他总是有制胜策略。

可如果棋子数变了,那该策略也要做适当调整,甚至谁占优势也不一定了。事实上,由于制胜策略就是留下的棋子数必须是3的倍数,为了把事情弄清楚,我们可以将初始棋子数除以3,看余数是多少:如果余数为2(就像刚才的例子),那第一位玩家就要在第一轮中拿走2枚,然后保证接下来的每一轮两人拿走的棋子总数为3枚(如果对方拿走1枚,第一位玩家就必须拿走2枚,反之亦然);如果余数是1(比如初始棋子数为19、25、100或2011),那第一位玩家只要在第一轮中拿走1枚,也还是会赢。然而,假如余数是0(棋子数可以被3整除),那第二位玩家就有胜算,但前提是如果第一位玩家拿走1枚,他就要拿走2枚,反之亦然。在这种情况下,第一位玩家留下的棋子数永远不可能是3的倍数。

至此,我们已经成功地将该游戏扩展到任意初始棋子数了。不过,我们还可以将其进一步扩展,即改变每轮拿走的棋子数量。

游戏2(双人):逢100者输

第一位玩家在纸上写下从1到10的一个数。第二位玩家从1到10中找一个数,将其与第一位玩家写下的数字相加,并将总数写在纸上。游戏继续进行,双方轮流从1到10中找一个数,与之前的结果相加。谁先得出三位数(100或100以上),谁就输了。该游戏的制胜策略是什么?两位玩家中,谁占优势,第一位还是第二位?假如游戏规则或游戏目的发生变化,会发生什么?

如前所述,我们仍然建议你先玩几次,然后再来为某一位玩家寻找制胜策略,并思考该游戏与前一个游戏之间的关系。为了便于我们发现制胜策略,可以按以下步骤对其进行分析:如果得出100的人输,那么写下99的人就会赢。要想保证自己可以得出99,之前要写的数字必须是多少呢?答案是88,因为这样一来,对方写下的数字必然在89和98之间,那下一轮就有可能得出99。和之前的例子一样,我们也来倒推一下(即88、77、66……最后到11)。很明显,该制胜策略就是按11分组。现在我们就可以来形成制胜策略了:谁写下11,并相继写下11的倍数(如果对方加n,胜出一方就加11-n),谁就能得到99,并最终胜出。考虑到第一位玩家在第一轮是不可能得出11的,那第二位玩家就有制胜策略。与前面的游戏类似,如果目标数字不是11的倍数,第一位玩家就总是会赢;如果情况相反,第二位玩家就总是会赢。

游戏3(双人):普遍适用

假设桌上有m枚棋子,玩家每次可拿走1到n(n
实际上,这不仅仅是一个游戏,而是一组抽象游戏,之前的两个例子只是其中两种具体情况。因此,只要我们将该游戏的制胜策略加以推广,就可以同时破解无数个游戏。我们可以按照以下方法制定策略:将m除以n+1,取余数,该余数必将介于0和n之间。因此,我们会得出两种情况:

a)假如余数为0,那第二位玩家就有制胜策略,他留下的棋子数必须是n+1的倍数;为此,假如第一位玩家拿走p枚棋子(0
b)假如余数为r(0
有了这一策略,我们就可以破解无数个具体游戏,比方说接下来这个游戏:桌上有2010枚棋子,每位玩家可拿走1到49枚。谁有制胜策略?该策略是怎样的?如果该游戏规定,拿走最后一枚棋子的玩家输,而不是赢,我们就会发现,要想胜出,我们要做的就是拿走倒数第二枚,只留下最后一枚。这样的话,策略就一样了,只不过现在的棋子数是m-1,而不是m。

所有这些游戏一开始都只有一堆棋子,都可以被看作所谓尼姆游戏的简化形式。接下来,我们再看其他一些游戏。

复杂的策略:尼姆游戏

我们还可以将之前的游戏进一步扩展,即棋子堆数为任意有限数量。这就是我们所说的尼姆游戏,一开始的棋子堆数不定,每堆的棋子数也不定。按照游戏规则,每位玩家可以拿走任意数量的棋子,但只能从一堆中拿,每次最少一枚,最多将一堆全部拿完。拿走最后一枚棋子者胜。不过,也可以规定拿走最后一枚棋子者输。

游戏4(双人):尼姆游戏第一版

我们从3堆棋子开始,每堆分别有1枚、3枚和5枚。双方轮流从一堆中拿走任意数量的棋子(最少1枚,最多将一堆全部拿完)。拿走最后一枚者胜。谁有制胜策略?

通过分析我们可以看出,第一位玩家有制胜策略,只不过在一开始,只有一种拿法能保证其胜出。其实,只要读者亲自玩一下就会发现,以下两种做法对任何玩家来说都是禁忌:

a)留下两堆相同数量的棋子。

b)将一堆全部拿完。

事实上,如果玩家A采取了做法a),那玩家B就可以将第三堆全部拿走,然后模仿对方的做法就能胜出。如果玩家A从任意一堆中拿走n枚,B就从另一堆也拿走n枚。照这样下去,当A拿走一堆中的最后一枚时,B就能拿走另一堆中的最后一枚,B就赢了。同理,如果A采取了做法b),那么B就可以从较多的一堆中拿走部分棋子,让两堆棋子的数量相同,然后再按照上述方法胜出。因此,谁能迫使对方踏入“禁区”,谁就能赢。在这里,如果第一位玩家从5枚棋子的一堆中拿走3枚,剩下的3堆棋子数分别为1枚、2枚、3枚,那么他就会赢,因为这意味着对方要么拿完一堆,要么让两堆数量相同(即1枚或2枚棋子)。

显然,该策略还是太具体了,很难适用于任意堆数的游戏,甚至连只有三堆,但每堆的棋子数不同而且数量更多的游戏也不行。不过,数学可以帮我们找到一种可以普遍适用的策略,任意堆数,每堆任意棋子数都没问题。为此,我们需要注意,如果将每堆的棋子数以二进制的形式写出来,然后将每个数字的对应单位排成一列,那么每拿一次棋子,至少有一列数码的奇偶性会发生变化。其原因在于,我们每拿一次棋子,这一列或几列当中都只会改变一个数码,而且至少有一个数码会从1变为0。因此,假如一开始各列数码总和是偶数,那么第二位玩家就有制胜策略(经过第一轮之后,他可以使得各列数码总和还是偶数,这对第一位玩家来说是不可能的)。相反,假如一开始至少有一列的数码之和为奇数,那么第一位玩家就有制胜策略,因为他第一次拿完之后,各列数码之和就皆为偶数了。

为了便于更好地理解,我们将通过几个例子来看一下该策略是如何运用到具体的游戏中去的。首先是3堆棋子,每堆分别为1枚、3枚和5枚(即我们之前分析过的游戏4),之后是尼姆游戏更常见的玩法——马里昂巴德,即4堆棋子,每堆分别为1枚、3枚、5枚和7枚。

先来看第一种情况,即3堆棋子,每堆分别为1枚、3枚和5枚。

将每一列的数码单位相加,就可以看到,各列数码总和是奇数。这样的话,第一位玩家就有制胜策略。要想胜出,他就必须保证各列数码之和为偶数。唯一可行的做法就是将数字5(101)变为2(10),也就是从5枚棋子的一堆中拿走3枚。这样就变成:

现在,各列数码之和就成了偶数了,这意味着第二位玩家不管怎么做,都会使得其中一列的和变为奇数,而对方却有机会使得各列之和为偶数,直到最后也是如此(即所有数字都是0,各列之和也是偶数)。

游戏5(双人):马里昂巴德

桌上有4堆棋子,每堆各有1枚、3枚、5枚和7枚。双方轮流从一堆中拿走任意数量的棋子(最少1枚,最多拿完一堆)。拿走最后一枚者胜。谁有制胜策略?

我们按照上个例子的分析方法来看一下:

从这些二进制数来看,一开始各列数码之和为偶数,所以第一位玩家不可能胜出,第二位玩家有制胜策略。实际上,第一位玩家不管怎么拿,都至少会使得其中一列的数码之和变成奇数。假设他从3枚棋子的一堆中拿走1枚。那就变成:

现在,第二位玩家必须设法使得右边一列的数码之和变为偶数(其他列保持不变,因为其数码之和已经是偶数了)。更准确地说,他们必须从任意一堆中拿走1枚,第二堆除外,因为这样一来,就会使得右边一列中的一个1变为0了。

尽管为尼姆游戏寻找策略要比之前的游戏麻烦得多,但是我们为所有这些游戏制定制胜策略时,采用的方法都是一样的。那就是找到一种与游戏最终状态相契合的平衡,两位玩家当中只有一方可以做到。所以,在本章分析的第一个游戏(逢20者胜)中,这种平衡就是保证留在桌上的棋子数为3的倍数。在第二个游戏(逢100者输)中,要保证写下的数字是11的倍数。而在最后一个例子(尼姆游戏)中,这种平衡就是保证每一堆的棋子数写成二进制后,对应单位的各列数码之和为偶数。

NIMROD

20世纪50年代初期,英国费南迪集团的工程师设计研发了第一台专门玩游戏的计算机。该计算机名为NIMROD,前三个字母取自尼姆游戏(NIM),设计者将该游戏程序录入计算机中。这台计算机的面板上装了许多灯,亮起的灯代表游戏中棋子的位置。1951年,这台计算机在不列颠节上展出,从此开启了电子游戏的时代。

尼姆游戏有时也可以反过来玩,即拿走最后一枚棋子者输,而不是赢。在这种情况下,原来会赢的玩家依然会胜出,其策略刚开始不变,只有到了“惯用”步骤(该步骤能确保玩家在第一版中胜出),即令各堆至少有两枚棋子的时候,才会有所不同。现在,关键的一步在于,让剩下的堆数为奇数,并且每堆只有1枚棋子,而在正常的游戏中,正确的做法是让剩下的堆数为偶数。

我们一旦找到尼姆游戏的任何一个制胜策略,难免就会产生疑问,是否有可能发明一种同样类型的游戏,该游戏没有制胜策略。答案是肯定的,这就是所谓的“尼姆车”(Nimbus)游戏。尼姆车游戏是在尼姆游戏的基础上附加了以下条件:只有在棋子连贯的情况下,才能从某一堆中拿走多枚棋子。也就是说,之前的一步不会剩下缺口。这个条件跟每一行棋子的位置有关,这个问题我们尚未考虑过。这就好比告诉我们,每次从某一行中拿走棋子,这一行就可以分成两部分(当拿走的棋子不包括一行末尾的棋子时,就一定会出现这种情况),从而产生新的棋子堆,并改变游戏方式,原来适用于尼姆游戏的策略已经不再奏效了。

游戏目的:对等与差异

通过对某些游戏的目标和规则进行横向分析,我们可能就会发现,很多时候,有些策略游戏看似不同,实则无异,也有些游戏看似相近,实则需要完全不同的策略。

二进制

二进制是一种位置编号系统,任何数字都可以用0和1两个数字来表示。要想把一个二进制数转换为十进制数,只需要将1替换为2的乘方,指数对应其所在位置。换句话说,最右一位相当于20,向左依次为21、22……例如,如果将二进制数110101转换为十进制数,就应该是:1·20+0·21+1·22+0·23+1·24+1·25=1+4+16+32=53。

同样,如果要将十进制数转换成二进制的形式,就应该将该数字除以2,取商再除以2,以此类推,直到商为1。最后一个商就是左边第一个数字,每一步中所产生的余数,从后往前,依次成为之后的数字(任意数字除以2,余数只能是0或1)。

39的二进制形式为10011,因为39/2,商19(余1);19/2,商9(余1);9/2,商4(余1);4/2,商2(余0);2/2,商1(余0)。这种方法其实就是将数字表述为2的连续指数乘方之和。因此,在二进制中,39=1+2+4+32=1·20+1·21+1·22+0·23+0·24+1·25=100111。

尽管二进制是一个相对较新的概念,但其基本性质(所有数字都可以表述为两个不同数字的乘方之和)多年来早已为人们所熟知和应用。例如,古埃及人在做乘法计算时,将一个数值翻倍,另一个数值除以2(如果该数字为奇数,则把前一个数字除以2),这种算法十分有效,就是用到了上述性质。

《皇家科学院的历史》中的一页。这是一部关于二进制的著作,作者莱布尼茨,创作时间为1703年

上一章目录下一章
推荐书籍:恋爱中的苏格拉底:哲学入门十讲 表达力:人生情商课 岸萤 儿童发展心理学 记忆记忆 南货店 萨缪尔森传:现代经济学奠基者的一生·第一卷 希特勒最后的阴谋 我想要两颗西柚 舍不得看完的中国史:秦并天下