古老的谜题:两人轮流拣三堆小石子,谁拿最后一粒便输...

iscandy 2007-06-27 04:15:24
加精


有三堆小石子,两个人轮流来取走,规则如下:

1、每次可以取走任意数量
2、每次只能在一堆中拣取,不能跨堆
3、每次最少必须取1粒
4、取所有石子中的最后1粒者即输。

如果最先取的那人输掉,那么这三堆石头的数量分别是怎样的?

举例:

0,0,1
0,2,2
0,3,3
0,4,4
0,5,5
...
1,1,1
1,2,3
1,4,5
1,6,7
...



...全文
6943 55 打赏 收藏 转发到动态 举报
写回复
用AI写文章
55 条回复
切换为时间正序
请发表友善的回复…
发表回复
wasaa 2009-03-03
  • 打赏
  • 举报
回复
电脑好的人 数学都要很好的啊?
aripio 2009-02-14
  • 打赏
  • 举报
回复
此题也出现在微软的《编程之美》一书中了
PrinceGay 2007-07-20
  • 打赏
  • 举报
回复
也就是说什么情况下先拿的人必输,不管怎么拿都是输
1,0,0
1,1,1
0,2,2
1,2,3
这样如果谁先拿必输
yardloun 2007-07-03
  • 打赏
  • 举报
回复
关注
crkj0304 2007-07-02
  • 打赏
  • 举报
回复
没有说堆的顺序和必须按堆的顺序依次取啊。
jinwei1984 2007-07-02
  • 打赏
  • 举报
回复
mark! 好多高手
adrian8181 2007-07-02
  • 打赏
  • 举报
回复
组合数学中的NIM游戏。:)。可以参考和组合数学相关的资料。这种问题有不少变形。
glust 2007-07-02
  • 打赏
  • 举报
回复
留影
yujia_2008 2007-07-02
  • 打赏
  • 举报
回复
顶!
LutzMark 2007-07-01
  • 打赏
  • 举报
回复
日式RPG里经常出现
iscandy 2007-07-01
  • 打赏
  • 举报
回复
果然,除了0,0,1 和1,1,1 这两种特殊情况,其它的只要XOR为零就是必输之局了!

这么简单,哪个强人发现这个规律的啊?太牛了!
xiaohuan 2007-06-30
  • 打赏
  • 举报
回复
大航海4里面有这个游戏,后来分析了下,写了个程序,好几年了
dext 2007-06-30
  • 打赏
  • 举报
回复
N堆和三堆是一样的

各队的石子数 异或,得零就赢。
yin9184 2007-06-30
  • 打赏
  • 举报
回复
mark
brookcobble 2007-06-30
  • 打赏
  • 举报
回复
想法: 如下表:
.....................
5: 005a 014b, 023a 113a 122a
4: 004a 013a 022b 112a
3: 111b 012a 003a
2: 011a 002a
1: 001b
最左边是总石子数,右边是石子的分配情况,标a是第一个人赢,标b是第二个人影。算法:总石子从1开始,第二个人影,依次网上找,例如005可以通过一次操作到下面的某个b,那么第一个人影,否则第二个人影,因为下面的节点,或a或b有必胜策略,无论第一个人怎么操作,总石子减少,如果他不能到b,那么下一个人一定存在必胜策略。
hujiao199 2007-06-29
  • 打赏
  • 举报
回复
回复Ice0River() 结果是唯一的,就是先拿的赢。因为你不可能采取让自己输的策略。
liuhaidi 2007-06-29
  • 打赏
  • 举报
回复
mathe()的算法是正确的,但怎么证明?
Ice0River 2007-06-29
  • 打赏
  • 举报
回复
我有一点不明白:两个人拿的时候,是不是都尽可能的想让对方输?
1 n 1 的话
如果 n 是1 ,那结果是肯定的,
如果 n 不是1 ,拿法不同的话,结果就可能不同啊。
hujiao199 2007-06-29
  • 打赏
  • 举报
回复
看来不是奇偶的问题。
hujiao199 2007-06-29
  • 打赏
  • 举报
回复
但是又被ziq9931给推翻了。yizhu2000的不对。
加载更多回复(35)

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧