54颗棋子,甲乙两人,每次没人拿1到4颗,每次没人必须拿,求让甲拿到最后一颗棋子有多少种方法?

SuParker 发布于 2013/11/21 11:37
阅读 1K+
收藏 2
54颗棋子,甲乙两人,每次没人拿1到4颗,每次没人必须拿,求让甲拿到最后一颗棋子有多少种方法?求思路。。。求代码!
加载中
0
那天早上
那天早上
 这种蛋疼的问题。
0
yanchao90
yanchao90
假设已经是最后一步,甲拿走最后一颗棋子。顺序倒过来,就是甲开始哪第一颗棋子,剩下53颗棋子,枚举出“从53颗棋子中每次取1到4颗,共有多少中取法”
yanchao90
yanchao90
回复 @ericsoul :那我理解错了,我以为你是说最后一次甲拿一颗。 这样的话再分别枚举52,51,50颗棋子的拿法呗
ericsoul
ericsoul
这样漏了很多种,最后一次甲拿2颗,3颗,4颗,也是一颗让甲拿了。
0
花想容

只有一种方法

1.甲开始时拿4颗,剩下50颗

2.假设乙拿k颗,则甲拿5-k颗

3.重复步骤2,最后一颗就是甲拿的

这个玩法,谁先拿谁赢.

yanchao90
yanchao90
回复 @ericsoul : “审题不清,先入为主,思考不仔细”,哈哈
老法海
老法海
回复 @ericsoul :
ericsoul
ericsoul
朋友,你这个拿法,最后一颗轮到乙拿了。 另外,lz这个问题是算法题,不是智力题。另外,题目也没有说,拿最后一个是赢。 所以有三个问题您需要面对:审题不清,先入为主,思考不仔细。
0
zzy_zzy
zzy_zzy
<编程之美>
0
ericsoul
ericsoul
类斐波那契的问题,到第一格,有1种走法,到第二格有1+1,2两种走法,第三格有,从第一格+2和从第二格+1和一次走到第三格也就是1+2+1,同理,第四格是1+2+4+1。接下来也就是从第五格开始,等于前四格的和。so,递归。不过似乎很慢。我打这些字的时间,thinkpad t420,i5cpu一个核满载还没算出来。。。
ericsoul
ericsoul
呃,不用花时间了囧。每层加的时候分奇偶加就行了,上一层4个的奇数和是这一层的偶数。
ericsoul
ericsoul
再考虑负责点,应该也是题目的原意就是甲先拿,实际就是考虑跳次是奇数的情况,又可以打发时间了。
ericsoul
ericsoul
变态了,不用54个空间,4个就够了,sum起来覆盖最小的那个。shit,好爽。
中山野鬼
中山野鬼
回复 @ericsoul : 我本来以为看懂题目了,后来看了评论发现没懂。本来以为懂的答案和先拿4颗是一样的。哈。
ericsoul
ericsoul
结果是1391651133952928
下一页
0
Alfie
Alfie

其实很简单,不要被题目所迷惑,先定义一个规则,由甲方先拿棋子,既然每次拿棋子不能大于4,那么就好办了,分析一下,只要最后一轮留下5颗棋子,那么甲方先拿肯定必输,那么倒数第二轮如果剩下的是6颗棋子,试想一下甲方拿掉一颗,6-1=5,乙方必拿一颗,所以甲方必定收尾。依次类推,可以得出如下结论:

所有前面的过程我完全忽略不考虑,倒数第二轮剩余棋子数为6,甲拿1,甲收尾,倒数第二轮剩余棋子数7,甲拿2,甲收尾,倒数第二轮剩余8,甲拿3,甲收尾,剩余9,甲拿4,甲收尾!然后再去考虑这个前面的过程有多少种方法吧~

如果由乙方先拿,那么只能在倒数第二轮剩余棋子数等于5这个数字,甲才能收尾。

0
lingxi27
lingxi27
这问题弄出来个乙没什么意义的,又不是问策略
0
修改登录密码
修改登录密码

第一次甲必须拿4个,

以后乙拿n个  甲就拿5-n个,保证每轮都是拿走5个

最后一轮必然是甲最后取走最后棋子

0
修改登录密码
修改登录密码

这样一共经过10轮, 每轮可能出现的情况有4种

所以一共是4^10,即1048576种拿法

0
no_way
no_way
博弈题?
返回顶部
顶部