问题标题:
已知桌面上有108个棋子,小明和小刚开始玩游戏,规定每个人轮流拿旗子,每个人拿的棋子数必须是桌面余下棋子数的一个约数;拿到最后一个棋子的人输.如这时候刚开始拿的人只能拿108的约数
问题描述:
已知桌面上有108个棋子,小明和小刚开始玩游戏,规定每个人轮流拿旗子,每个人拿的棋子数必须是桌面余下棋子数的一个约数;拿到最后一个棋子的人输.如这时候刚开始拿的人只能拿108的约数个棋子,即1个,2个,3个,……小明先拿棋子,小刚后拿.问,小明或者小刚有必胜的策略吗?如果桌面上的棋子原来有215个呢?
和田康回答:
对于这样的过程 总有一个人拿到最后一个数,也就是总有这样的策略使得一个人总能获胜.
设第一个拿的人是a第二个为b
a是有必胜的方法.主要是控制b所能拿的子的数量.不管b下一步拿什么 余下的数对于a来说总有利.
在拿掉一定数量的棋子后余下数主要有以下几种情况
i>余下的数是素数 对这种情况只能取1和它本身.
ii>余下的数是合数对合数的情况比较复杂.它又分奇数和偶数两种情况.
对于合数是奇数的情况 a拿走定数目棋子后余下数应为素数或奇数,不能是偶数.
下面以8为例说明一下.
1>a拿1 余7为方便表示成a(1,7)b(1,6)
2>a(1,5)b(1,4)
3>a(1,3)b(1,2)
4>a(1,1)b(1,0)输了 分析这个过程中b每次只能拿1说明b被a控制了.
又如16
1>16=1*16=2*8=4*4a可以拿1,2,4,8a所要做的是从1,2,4,8中分析出到底拿什么.
如a拿8则余8这时轮b拿b可以按上面8的拿法来控制a.
若a(1,15)b(1,14)或b(3,12)或b(5,10)或b(1,14)则a(7,7)还原到上面拿8的过程a胜定.
若b(5,10)则a(5,5)还原到上面拿8的过程a胜定.
若b(3,12)则12=1*12=2*6=3*4这时a如何拿?a(1,11)b(1,10)这样又到了10个数这时a(5,5)还原到上面拿8的过程a胜定.
对于开始的数是奇数的情况 要分情况讨论 这时是不能确定谁能胜定的.
若奇数本身是素数则b胜定.
若b=n1*n2=1*b (n1,n2都是素数)则可以拿走(n1-1)*n2个数这是余n2则a胜定.
若b=n1*n2*n3*n4*…….*nm则(n1,n2,n3,n4.nm都为素数)则a(n1*n2*n3*...*n(m-1)-1,nm)则a胜定.
总结:对于什么样的数谁先拿谁就胜的问题.
只要谁能让下一个人拿到素数 则他就胜定.
点击显示
数学推荐
热门数学推荐