魔方吧·中文魔方俱乐部

标题: 也说拿N堆棋子的问题 [打印本页]

作者: 忧天杞人    时间: 2008-5-20 14:27:37     标题: 也说拿N堆棋子的问题

假设有N堆棋子,每堆棋子的数量均为大于1的任意数,现有二人依次拿取,每次只能从一堆中拿取,数量不限,但不得小于1,谁最后拿完谁胜利。问取胜策略
      原理:将每堆的数目转换成二进制数相加,结果以十进制显示,但满十不进位,如果结果的每个数位上都是偶数的话,我们称之为“均偶”状态。“均偶”数列拿取后必定成为“非均偶”数列,而“非均偶”数列拿取后可以成为“均偶”数列,也可以成为”非均偶“数列。因为取胜的最终状态{0、0、0……}为“均偶”状态,所以取胜的实质就是要把“均偶”数组留给对手。
      策略:首先判断原始数列的状态,如果不是“均偶”状态,那么就要通过调整某个数,使之变成“均偶”数列留给对方,坚持到底就会胜利。“非均偶”数列先拿者必胜。“均偶”数列先拿者必败。
     举例:有95、87、62三堆棋子,我方先拿取,求取胜策略,模拟如下(看不清的可以下载附件看) 未标题-1.jpg
【补充】
      至于相反的规则“谁拿最后一个谁输”的取胜策略,只需将上面的规律略加修改,也可以控制局面。如果你一直拥有“均偶”数列,对方一直处于劣势,到某一时候,对方留下来的残局一定会出现一种特殊型态,即是,除某一个数大于1,其他各数均为1(为0的不管它),这时候你的拿法要开始注意,你需将较大的数变为0或者1,决定采取何者,完全看你拿了之后,要能使剩下的堆数为奇数,也就是给对手剩下奇数个1。显而易见的是,以后对方取一个,你也取一个,到最后拿的一定是对方,于是你就赢了。

[ 本帖最后由 忧天杞人 于 2009-2-23 08:29 编辑 ]

附件: 未标题-1.jpg (2008-5-20 14:27:37, 45.1 KB) / 下载次数 48
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MTY4OTF8NDhkNWUxOTN8MTc0MDgzMTUwNnwwfDA%3D

附件: 文档 1.pdf (2008-5-20 14:27:37, 54.14 KB) / 下载次数 11
http://bbs.mf8-china.com/forum.php?mod=attachment&aid=MTY4OTJ8YThjYmIyYmJ8MTc0MDgzMTUwNnwwfDA%3D
作者: kexin_xiao    时间: 2008-5-20 16:24:14

抢个头排的座,等着学习!
作者: gozichen    时间: 2008-5-20 16:27:54

以前玩过,现在都忘记了
作者: lqrsjcs    时间: 2008-5-20 18:54:26

如果是谁拿到最后一个算谁输,就比这个规则还要难一点,取胜策略大致一样,不过扫尾的时候有点区别,而且用转换二进制再相加法有时候行不通,会玩谁拿到最后一个算谁输的就会玩谁拿到最后一个就算谁赢的,但反过来就不成立了。
作者: bbshanwei    时间: 2008-5-20 19:03:39

这些天正在研究“分珍珠”,这个来的太是时候了!感谢LZ。
作者: oooo    时间: 2008-5-20 20:53:26

如果是谁拿到最后一个算谁输,就比这个规则还要难一点,取胜策略大致一样,不过扫尾的时候有点区别,而且用转换二进制再相加法有时候行不通,会玩谁拿到最后一个算谁输的就会玩谁拿到最后一个就算谁赢的,但反过来就不成立了。
不解释我绝对看不明白啊 揭示了也不大明白
作者: lqrsjcs    时间: 2008-5-20 21:28:26

该解释的楼主不都解释了吗,楼主解释的很详细了
作者: whitetiger    时间: 2008-5-21 08:57:14

这个人家早已研究透了。在网上搜索“Nim”游戏,大家就知道了,还有好多变种呢!(这个只是第二简单的形式。)
作者: lqrsjcs    时间: 2008-5-21 10:21:31

楼上高手,给下谁拿到最后一个谁输的必胜策略   向楼上学习下,我想了半天也想不出来用数学怎么表达这种必胜策略
作者: 忧天杞人    时间: 2008-5-21 14:24:50

这个问题已经解决,个人感觉。
作者: lqrsjcs    时间: 2008-5-23 11:19:49

我只是想知道必胜策略而已     这问题我小学的时候就知道了,肯定早就有人解决了。




欢迎光临 魔方吧·中文魔方俱乐部 (http://bbs.mf8-china.com/) Powered by Discuz! X2