拈及其各种变形游戏 张镇华.docx

上传人:b****3 文档编号:4465103 上传时间:2022-12-01 格式:DOCX 页数:16 大小:123.97KB
下载 相关 举报
拈及其各种变形游戏 张镇华.docx_第1页
第1页 / 共16页
拈及其各种变形游戏 张镇华.docx_第2页
第2页 / 共16页
拈及其各种变形游戏 张镇华.docx_第3页
第3页 / 共16页
拈及其各种变形游戏 张镇华.docx_第4页
第4页 / 共16页
拈及其各种变形游戏 张镇华.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

拈及其各种变形游戏 张镇华.docx

《拈及其各种变形游戏 张镇华.docx》由会员分享,可在线阅读,更多相关《拈及其各种变形游戏 张镇华.docx(16页珍藏版)》请在冰豆网上搜索。

拈及其各种变形游戏 张镇华.docx

拈及其各种变形游戏张镇华

拈及其各种变形游戏

张镇华

(一)拈(Nim)这种游戏

(二)威氏游戏(Wythoff'sGame)

(三)费氏数列及进位法

(四)威氏游戏的致胜方法

(五)单堆游戏

(六)结语

(一)拈(Nim)这种游戏

就像物理的不共容原理一样,数学游戏的趣味性和其数学理论的完整性,成为互相排斥的两部份。

一种游戏完全被数学决定以后,玩的人只要晓得其中的理论,无不处于优势。

游戏本身则成为数学的计算,玩起来必索然无味;但如果将它视为数学问题处理,则蕴藏有甚多美妙的理论在其中。

富有挑战性的游戏,则没有固定的规律可寻,必须随机应变,靠临场的机智和以往的经验取胜,玩者有味;但在数学理论上则没有什么可言。

拈及其各种变型游戏大都属于前者。

当做一种学问,我们只关心其富有趣味的数学理论。

在所有双人对局游戏中,拈是极其古老且饶富兴趣的一个课题。

据说,拈源自中国,经由被贩卖到美洲的奴工们外传。

辛苦的工人们,在工作闲暇之余,用石头玩游戏以排遣寂寞。

流传到高级人士,则用辨士(Pennils),在酒吧柜台上玩。

最有名的是将十二枚辨士分三列排成「三、四、五」的游戏,如下图:

游戏的规则很简单。

两人轮流取铜板,每人每次需在某一列取一枚或一枚以上的铜板,但不能同时在两列取铜板,直到最后,将铜板拿光的人赢得此游戏。

也可以做相反的规定:

最后将铜板拿光的人输。

一个头脑灵活的赌棍不久就会发现,先取的人,在第一列的三枚铜板中取走二枚,就能稳操胜算。

一个显而易见的规律是,只要你留下两列枚数相同的铜板,必可获胜。

在这里对称扮演极重要的角色。

如果这个游戏只是「三、四、五」型态,那么不久后,大部份人就能熟悉其中规律,并且变得没有兴趣。

有一个改变的方法是,将铜板的列数增加,每一列的枚数改变。

这样的做法,的确使人有毫无规律的感觉,至少不至于像「三、四、五」型态的拈一样易于把握。

直到本世纪初,哈佛大学数学系副教授查理士.理昂纳德.包顿(ChalesLeonardBouton)提出一篇极详尽的分析和证明,利用数的二进制表示法,解答了这个游戏的一般法则:

对任意列数的铜板,每列有任意枚数,如何取得致胜之道?

在包顿的术语中,拿过后剩下的残局不是安全(safe)就是不安全(unsafe)的局面。

在所有安全的情况下,不管对方如何拿总是到一不安全的情况,你可以再取适当枚数的铜板(在适当的某一列),达到另一安全的情况,这样一直到拿光铜板为止,当然最后一次拿光铜板的一定是你。

反之,你如果留下不安全的情况,对方必有方法在适当的某一列,取走适当枚数的铜板,达到他的安全情况,也就是说你输定了。

包顿的方法很简单。

首先,将各列铜板的枚数化成二进制数,相加,但不进位,然后再看和的各个位数。

如果和的各个位数都是偶数,则表示一安全残局;否则,如果有一位是奇数,则为不安全残局。

例如「三、四、五」游戏,一开始就是不安全残局,先拿的人可以适当取二枚而造成他的安全残局。

[例一]

另一个不安全残局的例子如下:

[例二]

或者

为什么安全残局和不安全残局可以利用上述的方法判定呢?

这个道理其实很简单。

首先,如果将各列铜板数化为二进制表示法,相加,但不进位,得到的各个位数都是偶数的话,不论对方取那一列,多少枚铜板,则那一列铜板数所对应的二进制表示法中,必有某一位或数字由0变成1或者由1变成0,其相加的和也相对的有某一位或数位由偶数变成奇数。

例如,{1,4,5}这个安全残局,从第二列的4枚铜板取走2枚,则

相反的,如果和的某一位或数字是奇数,则我们有办法在某一列取走适当枚数的铜板,使得新的和的各个位数都是偶数。

首先,选取和中所有为奇数的各个位数

;例如在{14,15,18,22}的例子中和的第1和第3位是奇数。

其次看这些位数中那一个是最左边一位;本例中当然是第3位。

找某一列,使其二进制表示法在此位上刚好是1;本例中,可以找第一例的14,也可以找第二列的15。

然后将此列的铜板数所对应的二进制数中,凡是第ai位,都改变其数值,亦即若为0则变为1,若为1则变为0,如此得到一新数,我们只要在此列铜板取走适当的数目,使达到这新的枚数,即可以使新的和的各个位数都是偶数;例如,若考虑第一列的14=1110枚铜板,将其第1和第3位改变得到1011=11枚铜板,所以要在第一列取走3枚铜板。

相反规定,拿光铜板的人算输峙,只耍将上面的规律略加修饰,也可以控制局面。

如果你一直拥有安全残局,对方一直处于不安全的情况,到某一时候,对方留下来的不安全残局一定会出现一种特殊型态,即是,除某一列铜板的枚数大于1,其他各列均只有一枚铜板(拿光的各列不管它),这时候你的拿法要开始注意,你需将较多枚铜板这一列全部取光,或者拿到只剩下一枚,决定采取何者,完全看你拿了之后,要能使剩下的列数为奇数,当然每一列均只有一枚铜板。

显而易见的是,以后一人都取一列,也是一枚,到最后拿的一定是对方,于是你就赢了。

有很多人把这个方法写成计算机程序,来和人对抗,不知就理的人被骗得团团转,无不惊叹计算机的神奇伟大。

其实说穿了,只因为它计算比人快,数的转化为二进制其速度快得非人能比,如此罢了。

(二)威氏游戏(Wythoff'sGame)

用来玩拈的道具不限于铜板。

工余之时,石头可以玩;无聊磕瓜子时,瓜子可以玩;围棋子可以玩……。

也可以将石头分堆放置,一堆相当于一列。

这些都不是重点,我们甚至可以改变取铜板的规定,最后取光时输赢的规定……,于是,各种不同的变型游戏遂产生。

在拈的游戏中,如果只有两列铜板,则很容易看出来,留下两列枚数相同的铜板是致胜的安全残局。

也就是我们一开始说的对称这个想法。

事实上,包顿很巧妙的将对称化成二进制和的各个位数为偶数,将问题给一般化,这是很天才的想法。

所以两列的拈是没有什么可说的。

将拈的规定略加修改,成为只有两列的威氏游戏,却极其有意思。

规定是这样的,铜板只有两列,每列的枚数随玩者任意规定,两人轮流取铜板,取的时候,需要任一列中取一枚或多枚铜板,或者同时在两列取同样枚数的铜板,直到最后将铜板取光的人赢。

当然也可以像拈一样有相反的规定,最后将铜板取光的人输。

今只讨论前者。

拈的玩法完全不能适用于威氏游戏。

所有拈的安全残局{n,n},在威氏游戏中都是不安全残局。

因为我们加了一个规定,可以从两列铜板中同时取相同枚数的铜板。

[例3]若n是正整数,则{0,n}和{n,n}都是不安全残局。

[例4]{1,2}是安全残局。

因为

不管如何取,总是成为不安全残局。

[例5]{3,5}是安全残局。

因为

不管对方如何取,不是到达例3的不安全残局,就是你可以再适当取,使成例4的安全残局。

继续推演下去,可以得到许多组安全残局{1,2},{3,5},{4,7},{6,10},…。

一般而言,第n组安全残局{an,bn}可由下式定义得到

(1)a1=1,b1=2。

(2)若

已经求得,则定义an为未出现在以上这2n-2个数中的最小整数。

(3)bn=an+n。

做成表就是

n

1

2

3

4

5

6

7

8

9

10

an

1

3

4

6

8

9

11

12

14

16

bn

2

5

7

10

13

15

18

20

23

26

(1)、

(2)、(3)所定义的二数列

,具有下列特性:

(甲)数列

均是严格递增数列,而且bn=an+n。

(乙)

其中N表示正整数的集合,

(丙)若{an,bn}={am,bm},则n=m,即an=am,bn=bm。

事实上,相反的,具有(甲)、(乙)性质的数列,也就是具有

(1)、

(2)、(3)性质的数列。

[定理]{an,bn}是威氏游戏的安全残局,其余的组合{x,y}都是不安全残局。

[证]我们只要证明下面二点即可。

(1)由任何一组{an,bn}取铜板,不管如何取,都不会成为另一组{am,bm}。

假设从一组{an,bn}中的an取x,bn取y而能达到另一组{am,bm},则an-x=am,bn-y=bm。

(i)当x=0,y>0时,an=am则n=m,得y=0,矛盾。

(ii)当x>0,y=0时,bn=bm则n=m,得x=0,矛盾。

(iii)当x=y>0时,m=bm-am=(bm+y)-(am+x)=bn-an=n,矛盾。

(2)由任一组不是{an,bn}型的{x,y}可以适当取铜板使成某一组{am,bm}。

为方便计,可假设

(i)当x为某个bm时,y-am=y-(bm-m)=(y-x)+m>0,可在y中取y-am,变成{bm,am}。

(ii)当x为某个am,且y>bm时,在y中取y-bm,变成{am,bm}。

(iii)当x为某个am,且

时,y-x0。

在x中取x-ak,在y中取y-bk=x-ak则变成{ak,bk}。

这个定理不但告诉我们{an,bn}是威氏游戏的安全残局,其证明过程更暗含从不安全残局取铜板变成安全残局的法则。

我们只要记住这个法则,还有{an,bn}组合,则无不处于优势。

但是有一个问题是,当数目很大的时候,要记住一大堆{an,bn}是一件非常吃力不讨好的工作。

我们于是自然会问,有没有像拈类似的法则用来判断任何一组{x,y}是否为威氏游戏的安全残局,而不必逐一计算{a1,b1},{a2,b2}…。

答案是有的,在解答这之前,我们需要谈谈费氏数列及相关的问题。

(三)费氏数列及进位法

费氏数列是指无穷数列1,2,3,5,8,13,21,…而言,它的一般表示式是f0=1,f1=2,fn+2=fn+1+fn真正把它计算出来是

计算的过程和我们要讨论的没有太大关系,兹从略。

有一点可以注意的是,{fn}几乎成一等比级数。

因为

,其绝对值小于1,当n很大时,

变得很小,几乎可以省略不计。

也就是说

,几乎是等比级数型式增加。

费氏级数最有趣的特性是,自然界许多生长的过程或多或少和它有点关联。

可参考《数学漫谈》第四章(下)。

通常我们所熟悉的阿拉伯数字表示自然数的方法是利用0,1,2,3,4,5,6,7,8,9十个数字为基础,借「位」的观念,和「逢十进一」的方法组织而成。

这就是十进制法。

举例来说,345=3x102+4x101+5。

仿照这个道理,有各种进位法,例如计算机所熟悉的二进制法,仅有0和1两种基本数字,10110表示1x24+0x23+1x22+1x21+0=16+4+2=22。

八进制法,则仅有0,1,2,3,4,5,6,7八个数字。

标准的进位法中,各位都是满一个固定数就进位。

例如:

十进制法是满十进一,即个位数满十进一到十位数,十位数满十进一到百位数,百位数满十进一到千位数,……等。

考虑一个自然数的无穷数列B0,B1,B2,…其中B0=1,其余各Bn均大于1。

我们可以采取一种名为B进位法的记数法则:

由右边算起,第一位满B1进一到第二位,第二位满B2,进一到第三位,……,第n位满Bn,进一到第n+1位。

任何一个自然数x可以有唯一的B进位表示法

,其中

标准十进制法是取Bi=10,i=1,2,…。

各种k进位法是指Bi=k,i=1,2,…而言。

[例6]Bn=n+1,求347的B进位表示法。

所以347=2x(2x3x4x5)+4x(2x3x4)+1x(2x3)+2x2+1=24121B

假设Pn=B0B1…Bn则

成为一个以1为起点的严格递增无穷自然数列。

自然数N的B进位表示法

如果我们一开始就取一个以1为起点的严格递增无穷自然数列

,对于任何自然数N表示成

有无困难?

答案是有的。

在B进位表示法中,每一个自然数恰有唯一的一种表示法;但是在这种新的表示法中,不一定每个自然数均只有一种表示法。

[例6.1]数列

定义为Pn=2n+1,则

有趣的是,自然数的P数列表示法一定有解。

[定理2]

是一个以1为起点的严格递增无穷自然数列,则每一自然数N至少可以表示成一种P数列表示法

[证]利用数学归纳法证明:

N

n=1时,N=l0,其中l0(P)=N。

若n=k时本定理成立,则n=k+1时,利用除法公式,可以找到lk及r使得

由归纳法假设

而且

将上面这种理论用到费氏数列{fn}因为

,所以费氏表示法中的各个「位数」只能是0或1。

费氏数列表示法不具有唯一性。

[例7]化60为费氏数列表示法。

n

0

1

2

3

4

5

6

7

8

fn

1

2

3

5

8

13

21

34

55

因为fn+2=fn+1+fn,费氏数列表示法中有一种有趣的「进位法」:

第n位和第n+1位都是1时,可以进位到第n+2位。

如上例10110110(f)的第5和第6位都是1,故可以进位到第7位,将原数化成11000110(f);同理,可将11000110(f)的第2和第3位进位到第4位,成为11001000(f)。

利用这个性质,在一数的某一费氏数列表示法中,如果有相邻的两位均是1,则可以进位到左边一位,化成另一个不同的表示法,继续化简,到最后,可以得到一种表示法,其中li各数目,相邻两个不同时为1(否则,再进位即可),每一个数都有一种唯一的如此表示法,称之为标准表示法。

另一有趣的性质是:

如果lnln-1…l1l0(f)中各位数字0和1相间出现,例如101010(f)或10101(f)则

(四)威氏游戏的致胜方法

现在回到第

(二)节的数列{an}和{bn}。

一个相当有趣的事实是,如果将威氏游戏的各组安全残局{an,bn}用费氏数列标准表示法表示出来,如下表:

仔细观察,各个bn恰好是an后面加一个0,每个an最右边有偶数个连续的0(包括没有0),当然bn最右边有奇数个连续的0。

有了这个结果,我们要检查一组{x,y}(其中

)是否安全残局,就可以将x和y表成费氏数列标准表示法,再看看是否合于上述的条件即可。

这中间的优点是,我们不必再计算所有

的安全残局{an,bn},以决定{x,y}是否安全。

更重要的是,我们将有一种简便的方法,可以将不安全残局{x,y}适当的取成某一安全残局{an,bn}。

当然,数论上的一些结果告诉我们

([x]表示小于或等于x的最大整数,例如[2.99]=[2.0]=[2]=2)由定理1,我们几乎要求出2x/(sqrt5-1)组{an,bn}才能顺利的判定安全残局,以及由不安全残局拿成安全残局的方法。

当x大的时候,这么多的数据处理起来必然不方便。

上述{an,bn}的性质,只是依观察而得,现在我们要证明其真实性。

我们所以要这样做,不光是因为数学上的严密性,在证明的过程中,用到的一些计算,将很有用处。

首先将自然数分成A和B两部份,A是所有费氏标准表示法中右边有偶数个连续0的自然数的集合,B则是所有费氏漂准表示法中右边有奇数个连续0的自然数的集合。

将A中之数由小而大排成一数列

设bn'是an'费氏标准表示法右边再加一个0者。

我们将证明

且合于第

(二)节的(甲)(乙)条件。

所以,事实上就是

因此证明了上述的性质。

(乙)易于知道成立。

因为

都是严格增加数列,为了证明(甲),我们只要证明bn'=an'+n就可以,兹分下面两步骤,证明之。

(第一)bn'-an',随n增加而增加。

也就是,当n>m时,bn'-an'>bm'-am'。

[证]假设

上面均是标准表示法,但左边有的填0(即lr或

可能为

等)以便对齐。

n>m表示an'>am',也就是有一个s

对每一个i>s成立,

因为

可见

bn'-an'>bm'-am'

(第二)对于任一自然数x,有一组{an',bn'}使得bn'=an'+x。

[证]当x的费氏标准表示法右边有奇数个连续的0时,取an'=x0(f),bn'=x00(f)即可以。

当x的费氏标准表示法右边有偶数个连续的0时,即

利用

可见bn'=an'+x成立。

(第一)和(第二)证明了bn'=an'+n的确成立。

上面的证明不但说明了{an,bn}具有所述的性质,即是an为第n个费氏标准表示法之最右边有偶数个连续0的自然数,bn是第n个费氏标准表示法之最右边有奇数个连续0的自然数,尤有进者,bn的表示法等于an表示法右边再加一个0而已。

而且由(第二)可以知道,对于任何一个自然数x,不必用归纳法从a1,b1,a2,b2,…算起,一直求至ax,bx。

直接就可以算出ax和bx来。

所以在利用定理1的时候,我们就可以不必记忆一大堆{an,bn}值了。

(五)单堆游戏

在所有拈的变型游戏中,单堆游戏似乎是比较简单的。

最常见而为大众熟悉的玩法是这样的:

「两人轮流取一堆石头,每人每次最少取1个,最多取k个,最后取光石头的人赢得此游戏。

」请问有何致胜之道?

和前面一样,所有的情况,可以分为安全和不安全两种。

在这里k+1这个数扮演着极重要的角色,因为每次某一人拿的石头数i,合于

,可见

,另一人总是可以取k+1-i个石头,使这两次所取的石头共有k+1个,由是可见k+1是安全残局,利用归纳法则k+1的倍数必为安全残局。

反之,不是k+1倍数的任一自然数n=q(k+1)+r,其中

,一次拿r个石头就能到达q(k+1),即某一安全残局,可见此时为不安全残局。

相反的规定:

「最后取光石头的人输」,也可以分析知道,安全残局是q(k+1)+1这种型态的数。

并不是所有单堆游戏都是如此容易的,例如「奇偶游戏」则是较复杂的一种。

所谓「奇偶游戏」只是将上述的问题略加修改,最后取光石头时的输赢的规定不同,即「两人轮流取一堆石头,每人每次最少取1个,最多取k个,到最后石头被取光时,若手中所有石头总数为奇数,则此人赢得此游戏。

(也可以规定石头总数为偶数的人赢得此游戏)。

」显而易见的是,原先这堆石头的总数要是奇数才有意义。

这个游戏较前者更复杂,其安全残局视k的奇偶和k+1或k+2的倍数有关系。

另一个和骰子有关的单堆游戏由古先生1提出来,问题是这样的:

「有一堆石头,数目不拘。

首先任意掷一骰子,看出现几点,就取去几个石头。

然后两人轮流翻转骰子到前次骰子出现那一面的旁边四面中任一面,但不可以翻到对面,也不可以不翻,翻到几点,就取去几个石头,如此轮流玩到一方没有办法拿石头,也就是说,剩下的石头数比他翻到的数目还小的时候,则他就算输了。

首先要了解的一点是,骰子上面六个数目安排的方法。

从1到6的各个自然数在骰子上各出现一次,1的对面是6,2的对面是5,3的对面是4。

这个游戏和第一个单堆游戏有点类似,却不相同。

如果骰子出现i的时候,轮到你,则从1到6中的各数有两个,即是i和7-i,你不能翻到,其余四个随你高兴爱翻那一个都可以。

所以每次你能够取的石头数,依前次对方所翻到的数目而定,而对方翻的数又因你前次翻的而定,如此相互影响,就显得很复杂了。

仔细分析的结果,可以发现其安全残局和8的倍数有密切关系。

有兴趣的读者可以自已试试看。

如果把骰子加成两个,然后规定每次翻两个骰子,把翻到的两个数字和算出来,取掉同样数目的石头,则又如何呢?

如果还是有两个骰子,但每次只任选其中一个将它翻到新数目,看这数目是多少,就取掉多少石头,则又如何?

或者,还是两个骰子,每次只任意翻转其中一个到新数目,但把这个新数目和另一个未翻的骰子相加,算出其和,取掉同样数目的石头,则又如何?

当然,增加骰子的数目,则游戏更复杂。

最后我们想仔细讨论的一个单堆游戏叫做「双倍游戏」。

这个游戏和骰子的单堆游戏有一共同的特性:

每次所拿石头的个数受上次对方所拿石头的个数影响。

问题是这样的:

「两人轮流取石,每人每次至少取1个石头,至多取上次对方所拿石头数目的两倍;最后拿光石头的人赢得此游戏。

当然,第一个人不能第一次就取光所有石头。

[例8]2是安全残局,因对方只能取1。

[例9]3是安全残局。

[例10]5是安全残局。

如此继续推演下去,一个很有意思的结论是,所有费氏级数的项fn均是安全残局其余都是不安全残局。

要证明这件事情可以分几步完成,主要的概念还是在于自然数的费氏数列标准表示法。

(i)如果

,则fn

[证明]因为f1=2,f2=3,f3=5,所以n=1,2,时易知为对。

若n

两式相加

由归纳法得证。

(ii)如果你留下x=fk1+fk2+…+fkn-1+fkn个石头,其中

i=1,2,…,n-1,而且对方下次所能取走的石头数目小于fkn则你留下的是一安全残局。

[证明]假设对方拿走

个石头,其中

i=1,2,…,m-1。

时,

所以你可以取走y'个石头,使剩下x'=fk1+fk2+…+fkn-1个石头,而且

也就是对方下次所能取走的石头数目小于fkn+1如此又可用归纳法继续推演本定理。

其次,如果kn>2+kn+1分解

其中t为

为奇数,而且kn-t=kn+1或1+kn+1。

所以你可以取走y'个石头,使剩下

个石头,而且

2y'<2fkn-t

也就是下次对方所能取走的石头数目小于fkn-t+2。

同理可用归纳法。

(iii)双倍游戏中的安全残局是fn,n=1,2,…。

[证明]x=fn时就如(ii)所述,对方所取的石头不超过

,所以你是留下安全残局。

若一开始x不是fn型态,化为费氏标准式,

对方可以取去fkm剩下

;轮到你时不得取超过

,由(ii)可知他留下了他的安全残局,所以一开始是你的不安全残局。

(六)结语

有兴趣吗?

让我们随便规定一个玩法:

「一堆石头有100个,两人轮流取石,每次每人至少取一个,最多取上次对方取走石数的三倍。

最后取光的赢得游戏。

当然,第一个拿的人不可以第一次就取光所有石头。

笔者不晓得其中有何规则。

来吧!

你先?

还是我先?

东南亚电影外加牛肉面一碗。

1.《数学漫谈》,戴维.柏佳米尼及《时代生活》杂志社编辑部着,傅溥译着,美亚书局发行。

2.A.M.YaglomandI.M.Yaglom,《ChallengingMathematicalProblemswith

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1