- 主题:请问这道取火柴题怎么解?
这题甲不能保证每轮(甲乙各取一次)取走固定的数量,不知道有没有简单的方法。笨办法是从剩余1根开始,能找出来当剩余数量为 1+8k 或者 3+8k 这样的形式时,先取的必输。所以甲第一轮要取3根。
【 在 wasabi 的大作中提到: 】
: 前几天版上有人发过的试卷中的一道题,还没有版友给出解答,恳请大家指点,题目如下:
: 有2022根火柴,甲乙两人轮流取,每次只能取1、3、4、7根,谁取最后一根谁输,甲先取。他要想保证获胜,第一次应该取几根?(写出所有可能)
--
FROM 120.229.69.*
我说的是"没法"保证每回合的合计数,如果能保证问题就简单了。
我不知道有没有简单的办法能直接从1347推出“8”来,这里8=1+7是凑巧的。
笨方法,从1开始逐个确定必胜/必败局面,如果从某个数字能一步转移到某个已知的必败局面,那么这个数字对应的就是必胜局面;反之,如果一步转移只能到已知的必胜局面,则对应的是必败。
这道题因为拿最后一根的输,所以1是必败;所以2、4、5、8必胜;所以3必败;所以4、6、7、10必胜;然后可推出9、11必败。
至此可以判断1+8k和3+8k为必败,用数学归纳法很容易证明。
【 在 wasabi 的大作中提到: 】
: 请问 8k 的这个8是怎么得出来的? 为何要确保没回合拿的合计数是8? 因为取的可能性是1、3、4、7,如果第一人取了3根,那么另一个人无论如何都无法使得合计数为8,所以8这个数有什么意义么?
:
--
FROM 223.104.63.*
不能这么简单推。这题如果把每步允许的数量改成1367,“循环节”=12;如果改成1237,“循环节”=4
【 在 fatum 的大作中提到: 】
: 最多可以取7根,先手取完后留8根可以保证后手不能直接赢,所以7+1=8是循环节(不理解这个名称的意义,但感觉这个游戏就是这么玩的)
--
FROM 223.104.63.*
不是,先手的拿完之后如果能变成1+8k或3+8k就必胜,这题里先手拿3根之后=2019=8*252+3,留下必败局面给乙,甲必胜;但只拿1根后=8*252+5不是必败局面。
如果起始是2020,就是你说的拿1根或3根。
【 在 wasabi 的大作中提到: 】
: 谢谢指点,既然“至此可以判断1+8k和3+8k为必败,用数学归纳法很容易证明。”
: 那么是不是说,先手的人可以拿1个,也可以拿3个,都可以保证自己必胜?
:
--
FROM 223.104.63.*
如果允许一次取5根的话,是的;但题目限制一次取的数目只能为 1、3、4、7。
【 在 wasabi 的大作中提到: 】
: 2022=252*8+1+5。所以如果先手拿了5根,剩下的局面也可以是 252*8+1 ,依然可以保证必胜,也就是说答案有两种,先取5根,或者先取3根都行?
--
FROM 120.229.69.*
虽然结果对了,但这个推算过程是错的。甲取3根后剩2019,然后乙取3根,剩2016,这时如果甲为凑4、8,选择取1根,则剩余2015,乙取4,剩余2011,甲必败。
【 在 tengshiwei 的大作中提到: 】
: 甲拿3根是怎么算的呢。先江2022分成2000+22,2000可以被8和4整除,所以,乙开始拿、甲拿作为一个循环,甲凑4,8就行。最后剩22根,甲第一次可能拿1、3、4、7根,也就是可能会剩下21、19、18、15,因为最后一轮甲拿完一定要给乙剩1根或者3根,1、4、7凑8;3凑6或者10,感觉19最合适,先试算了19
: ...................
--
FROM 120.229.69.*
甲不能凑4;甲乙循环不能保证恰好消耗2000。
剩2001,乙取3,甲不能为了凑4取1,只能取3。
【 在 tengshiwei 的大作中提到: 】
: 甲取3根剩下2019,乙取3根,甲取7根,剩2009,(1)乙取1根,甲取7根,剩2001,按照凑4或者凑8,最后剩1根给乙。(2)乙取3,甲取3,剩2003,还是凑4或者凑8,最后剩3根。(3)乙取4,甲取4,剩余2001,凑4或者凑8,最后剩1根给乙。(7)乙取7,甲取1根,剩2001,凑4或者凑8,最后剩1根。就是把2000和19根分别对待。把19根放在前面算还是放在后面算。2000那个部分是乙拿、甲拿算一个循环。先把2000消耗掉。或者先算19的部分,剩2001或者剩下2003。
: 发自「今日水木 on iPhone 13 Pro Max」
: ...................
--
FROM 120.229.69.*
你还是没搞明白啊,甲不能凑4,凑4会留给乙必胜局面。
甲没有办法控制取走8的倍数,他只能保证4的倍数。乙取3,甲如果取1,后面乙每次取4,甲跟着取4,则取走的数量是 8k+4 这样的。你想保证合计取走2000或者2016这样,是办不到的。
【 在 wasabi 的大作中提到: 】
: 感觉你这个做法有道理,但是还不算太严谨。2000是可以被8和4整除,但是可以再多算一点,2016也可以被8和4整除,所以应该是让2016根去作为 乙先,甲后的循环根数,这样就剩下6根。 因为最后要给乙留下1根或3根才能确保甲获胜,又由于甲只能拿1,3,4,7这四种根数,所以甲第一次就只能拿3根,使得最后可以剩下3根留给乙。
:
: 【 在 tengshiwei 的大作中提到: 】
: : 甲拿3根是怎么算的呢。先江2022分成2000+22,2000可以被8和4整除,所以,乙开始拿、甲拿作为一个循环,甲凑4,8就行。最后剩22根,甲第一次可能拿1、3、4、7根,也就是可能会剩下21、19、18、15,因为最后一轮甲拿完一定要给乙剩1根或者3根,1、4、7凑8;3凑6或者10,感觉19最合适,先试算了19
--
FROM 120.229.69.*
方法对的,胜负条件弄反了。
【 在 lauhy 的大作中提到: 】
: 如果 当前 2 根, 甲必败(只有一种取法:甲1,乙1)
: 如果 当前 3 根,甲必胜(甲1,乙1,甲1)
: 如果 当前 4 根,甲必胜(甲4)
: ...................
--
FROM 120.229.69.*