朱梦琪 胡典顺
摘 要:玩Nim型游戏没有运气的成分,学生可以通过不断的试验来找到获胜的策略.利用数学游戏进行教学,不仅可以提高学生的学习兴趣,激发学生的创造灵感,感受数学的奇妙之处,更有助于学生提高观察和思考的能力,让学生学会从已知的现象探索未知的部分,提升学生的逻辑思维和运算能力,培养学生的数学核心素养.
关键词:Nim型游戏;Fibonacci数;数学核心素养
一、引言
提高一个人的数学水平,就是提高一个人的逻辑判断能力.数学学习能使人发现事物的内在规律和本质.在数学教学中,教师应该尽量不让学生去刻意地死记硬背,而是要找出它们背后所蕴含的原理.
弗赖登塔尔认为存在两种数学,一种是现成的或已完成的数学,另一种是活动的或者创新的数学.完成的数学在人们面前以形式演绎的面目出现,它完全颠倒了数学的思维过程和实际创造过程,给予人们的是思维的结果;活动的数学则是数学家发现和创造数学的过程的真实体现,它表明了数学是一种艰难曲折又生动有趣的活动过程[1].
《普通高中数学课程标准》征求意見稿中提出了六大数学核心素养:数学抽象、逻辑推理、数学建模、直观想象、数学运算和数据分析.今天,我们大力提倡提升学生的数学核心素养,数学教育工作者对此展开了许多讨论.那么,在数学教学中,数学核心素养的教学如何落地?这是我们每个一线教师和广大的数学教育工作者必须思考的问题.本文通过一个数学游戏阐述在数学教学中如何发展学生的数学核心素养,仅当抛砖引玉.
二、一个Nim型游戏
Nim游戏具有悠久的历史,它是博弈论中最经典的模型之一.在所有的二人数学游戏中,最有魅力的就是Nim游戏.它的规则十分简单,但是结论却无比优美.本文探讨的Nim型游戏的定义是有一堆个数为[n]的棋子,游戏双方轮流取棋子,满足:
(1)先手不能在第一次把所有的棋子取完;
(2)每次至少取走1颗棋子;
(3)每次取的棋子数不能超过对手刚取的棋子数的2倍;
(4)取走最后一颗棋子的人为赢家.
三、猜测及证明
我们先从简单的情形入手,看能否从中发现某种规律.表1中,我们只列出了对玩游戏的人有利的情形,即玩游戏的人都足够聪明以致在做出选择时不会犯错,比如一次取的棋子数尽量不会等于或大于当前棋子数的[13],因为这样显然对手会一次取完剩下的棋子,从而获得胜利.
由表1,我们可以猜测:当[n]为Fibonacci数(即2,3,5,8,13,…)时,先手必败;当[n]为非Fibonacci数时,先手必胜.
我们将从两个方面对上面的结论进行证明.首先证明当[n]为Fibonacci数时,先手必败;其次证明当[n]为非Fibonacci数时,根据“Zeckendorf定理”,可以对[n]进行分解,从而先手可以将问题转化为Fibonacci数时后手先取的情况,故后手必败.
首先设数列[an],其中a1=2,a2=3,an+1=an+an-1(n≥2).显然,数列[an]中的元素都是Fibonacci数.
下面我们用数学归纳法证明当棋子数量为an时,先手必败.
证明过程如下:
(1)当n=1时,a1=2,先手只能取1颗,显然必败,结论成立.
(2)假设当n≤k时,结论成立.下面证明当n=k+1时,结论也成立.
已知当n=k+1时,ak+1=ak+ak-1.
假如先手第一次取的棋子数a≥ak-1,因为ak=ak-1+ak-2<2ak-1,则后手可以直接取完ak.所以我们可以把[ak+1]颗棋子看成两堆,简称为[k]堆(棋子数为[ak])和[k-1]堆(棋子数为[ak-1]).
对于[k-1]堆,由假设可知,先手必败,即后手总能取到最后一颗.
接着我们来分析后手最后取到的棋子数x的情况.
如果先手第一次取的棋子数y≥[13][ak-1],则后手可以一次取完[k-1]这小堆所剩的棋子数,即x=[ak-1]-y≤[23ak-1],此时先手是否能一次取完[k]堆所有的棋子呢?我们不妨比较[23ak-1]与[12ak]的大小.
根据[12ak-23ak-1=16(3ak-4ak-1)][=16[3(ak-1+ak-2)-4ak-1]=16(3ak-2-ak-1)][=16(3ak-2-ak-2-ak-3)=16(2ak-2-ak-3)>0 ,]
所以我们得到x≤[23ak-1]<[12ak],即后手取完[k-1]堆后,先手不能一次取完[k]堆,所以现在游戏变为只剩下棋子数为[ak]的[k]堆,先手开始取,即游戏规则没有改变.由假设可知,对于[k]堆,后手仍能取到最后一颗,故后手必胜.
如果先手第一次取的棋子数[y<13ak-1],显然后手不能一次取完[k-1]堆,但后手总能取到最后一颗,而且一定有[x<23ak-1],同理后手必胜.
即对于n=k+1,结论依然成立.
所以我们证明了当棋子数为Fibonacci数时,先手必败.
接着来看看如果棋子数为非Fibonacci数,会有什么情况发生.这需要借助“Zeckendorf定理”:任何正整数可以表示为若干个不连续的Fibonacci数之和.
若棋子数为n,且[n?an],那么可以把[n]分解为[n=ai1+ai2+…+aipi1>i2>…>ip],且[i1,i2,…,ip]都是两两不连续的正整数.我们令先手先取完[aip],即棋子数最小的一堆.由于各个[aiξ(ξ=1,2,…,p)]之间不连续,则有[ip-1>ip+1],则有[aip-1>2aip]故后手只能取[aip-1]这一堆,而且一次取不完,此时先手可以取到这一堆的最后一颗棋子.同样的道理,对于后面的每一堆[aiξ(ξ=1,2,…,p-2)],先手都可以取到这一堆的最后一颗棋子,从而获得游戏的胜利.endprint
不妨举例进行说明,当[n=83]时,可以分解为[83=55+21+5+2].此时先手先取2颗,后手可以在5颗这一堆中取[m1(1≤m1≤4, m1∈N+)]颗,无法一次取完全部.由于5是Fibonacci数,所以先取的必败(先手已经取走开始的2颗,对5颗这一堆而言,轮到后手先取,即后手此时变为实际意义上的先手),即后手必败,故先手可以取到5颗这堆中的最后一颗.同理后手开始取21颗这一堆,且无法一次取完全部,由于21也是Fibonacci数,即先取的后手必败,所以先手可以取到21颗这一堆的最后一颗.显而易见,先手最后同样可以取到55颗这堆中的最后一颗,从而获得游戏的胜利.
下面表2表示当[n=83]时先手为了最快取得胜利的策略(假设后手同样希望在最短时间内结束游戏),此时第一次取走的棋子数[m]要满足以上两个条件,显然只能是[5+2=7]颗:当棋子只剩下最后一堆,即棋子数为Fibonacci数55时,先手需要保证在遵守游戏规则的前提下使得每次取完后的棋子数仍然为Fibonacci数,即可取得最终胜利.
四、结语
一个简单的Nim型游戏竟然会和Fibonacci数产生联系,多么神奇啊!这不禁让人联想到正多边形作图问题与费马数的結合,费马应该怎么也不会想到他发明的费马数会在100多年后被高斯用来解决2000多年前古希腊时期的正多边形作图问题.这也正是数学极具魅力的地方:看似完全没有关系的问题竟然可以通过出乎意料的方式联系在一起.但这种发现需要的并不仅仅是天马行空的想象力,同样需要一定的数学核心素养,包括逻辑推理、直观想象和数学运算等等.
本文探讨的Nim型游戏最有趣的地方是不管游戏进行到了哪一步,对两名玩家的其中一个一定存在着一个取胜的策略,玩这个游戏并没有运气的成分,任何人都希望在游戏中获得胜利,这也使得游戏的教学会激发学生的好胜心,从而促使他们通过不断的试验来找到获胜策略.在教师的引导下,学生可以利用数次试验的数据来进行想象和猜想,接着尝试用严密的逻辑推理来证明猜想是否正确,显然这其中需要借助不错的数学运算能力.
利用数学游戏进行教学,不仅可以提高学生的学习兴趣,激发学生的创造灵感,感受数学的奇妙之处;更重要的是,有助于学生提高观察和思考的能力,让学生学会从已知的现象探索未知的部分,透过现象看本质,提升学生的逻辑思维和运算能力,培养学生的数学核心素养.
参考文献:
[1]弗赖登塔尔.作为教学任务的数学[M].陈昌平,唐瑞芬,编译.上海:上海教育出版社,1995:7.endprint