欢迎访问散文集文学网!

探究抓牌游戏的数学奥秘

2864 分享 时间: 加入收藏 我要投稿 点赞

一、问题的提出

前几天,我和几个同学在一起玩一个非常有趣的抓牌游戏;它的游戏规则是这样的:54张扑克牌,两人轮换抓,一次可抓1到4张,最后一张让谁抓到谁就输;其中有一位同学多次胜出,可他也讲不清胜出的道理。我想,有没有保持永远胜出的办法呢?这其中又有什么规律吗?是否蕴含着什么数学的奥秘?

二、分析与探究

怎样保持永远胜出呢?我反复多次抓牌练习、思考;

根据我们集体活动的经验得出:在剩最后5张时,先抓的人抓走4张剩下1张就会赢;而在剩最后6张时,谁先抓谁就输。为什么剩最后6张时谁先抓谁就输呢?我思索良久,觉得还是应该动笔在草稿纸列出了所有的可能比较好;当纸牌有6张时,若第一个人抓1张,第二个人抓4张,剩下1张,第一个人只能抓走最后1张就输了;若第一个人抓2张,第二个人抓3张,剩下1张,第一个人只能抓走最后1张就输了;若第一个人抓3张,第二个人抓2张,剩下1张,第一个人只能抓走最后1张就输了;若第一个人抓4张,第二个人抓1张,剩下1张,第一个人只能抓走最后1张就输了。这样四种情况一分类,我就发现第二个人赢的方法就是所抓的牌数给与第一个人凑成5张,剩下最后一张让第一个人非抓不可。随后我又发现剩下最后7张牌时第一个人先抓1张、最后8张牌时第一个人先抓2张、最后9张牌时第一个人先抓3张、最后10张牌时第一个人先抓4张,这样先抓的人若再抓牌时只要与对方抓的牌数凑成5张则一定会赢;但剩下11张牌时,无论先抓的人抓几张,只要对方所抓的牌数与先抓的人凑成5张,则先抓的人一定会输;又发现剩下最后牌数12张时第一个人先抓1张、最后13张时第一个人先抓2张、最后14张时第一个人先抓3张、最后15张时第一个人先抓4张,这样若再抓牌时先抓的人所抓的牌数只要与对方的牌数凑成5张则一定会赢;但剩下最后16张时,无论先抓的人抓几张牌,只要对方所抓的牌数与先抓的人的牌数凑成5张,则先抓的人一定会输。

这样我就发现了一个有趣的规律,当牌数是6张、11张、16张、…时,无论先抓的人抓几张,只要对方所抓的牌数与他的牌数凑成5张,则先抓的人一定会输;而其它牌数先抓的人都有办法必赢。因为54÷5=10…4,同以上的9张牌和14张牌,所以我先抓3张牌,第二次抓牌时我只要与对方所抓的牌数凑成5张,那么到最后必定只剩下1张让对方抓走,我就可保持永远胜出,实践证明正确。

通过以上研究得到这样的结论:若游戏规则是“两人轮换抓,一次可抓1到4张,最后一张让谁抓到谁就输”;那么当扑克牌张数减去1的差能被5整除时,先抓的人必输;当扑克牌张数减去1的差不能被5整除时,先抓的人必赢。

三、问题的拓展

结论的发现令我欣喜若狂,我想如果也是54张扑克牌,若改变游戏规则如:两人轮换抓,一次可抓1到5张,最后一张让谁抓到谁就输;有没有保持永远胜出的办法呢?

结论显而易见,先抓的人只要先抓5张牌,无论后抓的人抓几张,接下来先抓的人所抓的牌数只要与后抓的人的牌数凑成6张,剩下最后一张让后抓的人抓走,就可保持永远胜出。

那么对于这类问题有没有其它的求解方法呢?

我豁然开朗,决定试一试倒推法。为了叙述方便,把这54张扑克牌编上号,分别为1~54号。抓扑克牌时先抓取序号小的牌,后抓序号大的牌。第一个人为了取胜,必须把54号扑克牌留给对方,因此第一个人在最后一次抓扑克牌时,必须使他自己抓到牌中序号最大的一张是53(也许他抓的扑克牌不止一张)。为了保证能做到这一点,就必须使对方最后第二次所抓的扑克牌的序号为49(=53-4)~52(=53-1)。因此,第一个人在最后第二次抓扑克牌时,必须使他自己所抓的扑克牌中序号最大的一个是48。为了保证能做到这一点,就必须使对方最后第三次所抓扑克牌的序号为44(=48-4)~47(=48-1)。因此,第一个人在最后第三次抓牌时,必须使他自己抓牌中序号最大的一个是43,…,把第一个人每次所抓的扑克牌中的最大序号倒着排列起来:53、48、43、…,观察这一数列,发现这是一等差数列,公差d=5,且这些数被5除都余3。因此,第一个人第一次抓牌时应抓1号、2号、3号等3张牌,然后对方抓a张牌,因为a+(5-a)=5,所以为了确保第一个人从一个被5除余3的数到达下一个被5除余3的数,第一个人就应抓5-a张牌。这样就能保证第一个人必胜。

四、问题的启示

上面这个游戏求解过程中体验到两种数学思想方法,首先是从特殊到一般、简单到复杂的归纳递推方法,其次是采用倒推的逆向思维方法;我深深感到它们绝妙无比,这又不禁使我联想到在课外做到的两道有趣的习题:

1、平面上5条直线最多能把圆的内部分成几部分?平面上100条直线最多能把圆的内部分成几部分?

分析:如果直接画图解答,那么寻求问题的答案就显得非常困难;如果是“退”到问题最简单情况开始观察,逐步归纳并猜想一般的递推公式,问题就迎刃而解。

解:

假设用ak表示k条直线最多能把圆的内部分成的部分数。这里k=0,1,2,…。如图可见。a0=1,a1=a0+1=2,a2=a1+2=4,a3=a2+3=7,a4=a3+4=11,…

归纳出递推公式an+1=an+n。即画第n+1条直线时,最多增加n部分。原因是这样的:第一条直线最多把圆分成两部分,故a1=2。当画第二条直线时要想把圆内部分割的部分尽可能多,就应和第一条直线在圆内相交,交点把第二条直线在圆内部分分成两条线段,而每条线段又把原来的一个区域划分成两个区域,因而增加的区域数是2,正好等于第二条直线的序号。同理,当画第三条直线时,要想把圆内部分割的部分数尽可能多,它就应和前两条直线在圆内各有一个交点,两个交点把第三条线在圆内部分成三条线段,而每条线段又把原来一个区域划分成两个区域,因而增加的区域部分数是3,正好等于第三条直线的序号,…。这个道理适用于任意多条直线的情形;所以递推公式an+1=an+n是正确的。这样就易求得5条直线最多把圆内分成:a5=a4+5=11+5=16(部分)。

要想求出100条直线最多能把圆内分成多少区域,不能直接用上面公式了,可把上面的递推公式变形:

∵an=an-1+n=an-2+(n-1)+n=an-3+(n-2)+(n-1)+n=…=1+1+2+3+4+…+100=1+,∴an=1+=1+=5051

2、甲、乙、丙三人各有铜钱若干枚,开始,甲把自己的铜钱拿出一部分分给了乙、丙,使乙、丙的铜钱数各增加了一倍;后来,乙也照着甲的方法做,拿出自己的一部分给甲和丙,使甲、丙的铜钱数各增加了一倍;最后,丙也照着这样的方法做,使甲、乙的铜钱数各增加了一倍;这时三人的铜钱数都是8枚。问原来甲、乙、丙三人各有铜钱多少枚?

分析:我们往往考虑常规的方法,直接列算式或列方程解答,可是却非常繁琐复杂;如果能从结果出发逆向思考,利用倒推法就能轻易求的结果。

解:根据最后三人的铜钱数都是8枚,我们来列表倒推还原:

 

甲88÷2=44÷2=22+7+4=13

乙88÷2=44+2+8=1414÷2=7

丙88+4+4=1616÷2=88÷2=4

 

答:原来甲有铜钱13枚,乙有铜钱7枚,丙有铜钱4枚。

综上两题所述,这两种数学思想方法无论在理论或实践中都有广泛的应用,具有很高的研究价值。

五、我的感想

从数学的角度对这个游戏的探究,使我获益匪浅。抓牌游戏让我明白:从特殊到一般、简单到复杂的归纳递推方法,以及采用倒推的逆向思维方法,这两种数学思想方法是解决疑难问题的两把金钥匙,只要你善于思考,学会运用,许多困难都会迎刃而解。

游戏中有数学,生活中无处不存在着数学,数学就像万花筒,充满神奇的力量,有无穷的奥妙,我相信只要你关心她,她就能深深吸引你。

 

103911
领取福利

微信扫码领取福利

微信扫码分享