三堆棋子,第一堆有3个,第二堆有15个,第三堆有17个!甲乙两人轮流拿,每次可在任意堆中拿若干颗,谁拿走最后一颗谁赢.如

三堆棋子,第一堆有3个,第二堆有15个,第三堆有17个!甲乙两人轮流拿,每次可在任意堆中拿若干颗,谁拿走最后一颗谁赢.如果甲先开始拿,那么他要想获得胜利,第一次应从第几堆拿走多少颗?如题!
考拉猫咪 1年前 已收到1个回答 举报

gfzchen 幼苗

共回答了15个问题采纳率:86.7% 举报

应该是甲第一次从第三堆中拿5个,他就有必胜策略.因为甲只要把(1,1,0),(0,1,1)或者(1,0,1)这三种情况之一留给乙,那甲就能赢,这在往前推一步,能导致这样情况的状态就是甲取完后是(2,2,0),(2,0,2),(0,2,2),(1,2,3);但是如果把这些情况中的数写成二进制数的话,对应位置上1的个数是偶数,比如(1,1,0)就是(01,01,00),第一位没有1,第二位有两个1,(2,2,0)就是(10,10,00),第一位有两个1,第二位没有1;而你题目中开始的三堆棋子的数目是(3,15,17)写成二进制就是(00011,01111,10001),第一位有一个1,第二位有一个1,第三位有一个1,第四位有两个1,第五位有三个1;如果甲从第三堆拿5个,那棋子数就变成(3,15,12),写成二进制数就是(00011,01111,01100),第一位没有1,第二、三、四、五位上1的个数都是2,这样在这步以后,只要乙取棋子,就至少会改变一个二进制数至少一位的0,1状态,那么显然甲只要拿的棋子数使得每次他拿完后,二进制数的每个对应位上的1的个数保持是偶数,拿到最后就会出现上面那几种种情况之一.

1年前

2
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.027 s. - webmaster@yulucn.com