有三堆围棋子,每堆数目任意(当然要大于0了),甲乙两人轮流每次从任意一堆里取走任意个棋子,拿1个也可以,一次拿光整堆也可以,总之不能同时在两堆或三堆里拿。谁能迫使对方把最后的一个或多个棋子取走谁就获胜。现在假设甲先拿,什么情况下他不能保证必胜?什么情况下他必胜,具体的致胜策略是什么?
问题等价于:有三个正整数,甲乙两人轮流将其中一个数改成更小的正整数。直至最后,迫不得已拿成0 0 0方的为输。
[此贴子已经被作者于2005-1-16 18:40:06编辑过]
有三堆围棋子,每堆数目任意(当然要大于0了),甲乙两人轮流每次从任意一堆里取走任意个棋子,拿1个也可以,一次拿光整堆也可以,总之不能同时在两堆或三堆里拿。谁能迫使对方把最后的一个或多个棋子取走谁就获胜。现在假设甲先拿,什么情况下他不能保证必胜?什么情况下他必胜,具体的致胜策略是什么?
设:这三个数分别为 A 、B 、C ,把这三个数用“逻辑异或”相加。 若值为 0 ,则 甲 不能保证必胜! 否则,甲 必胜! 但是,若途中一旦出现 A 、B 、C 有且只有一个值为 0 , 例如 A = 0 ,则 甲 必胜!因为 甲 此时只须使 B = 0 ,可迫使对方把最后的 一个或多个棋子取走而获胜。
上面的问题与“分珍珠”略有不同,请楼主参考:分珍珠。
现在假设甲先拿,什么情况下他不能保证必胜?什么情况下他必胜,具体的致胜策略是什么?
拿好以后的情况:
三堆棋子总数为偶数时他不能保证必胜。
三堆棋子总数为奇数时他能保证必胜。
呵呵,关键是楼主的题目有问题!
有三堆围棋子,每堆数目任意(当然要大于0了),甲乙两人轮流每次从任意一堆里取走任意个棋子,拿1个也可以,一次拿光整堆也可以,总之不能同时在两堆或三堆里拿。谁能迫使对方把最后的一个或多个棋子取走谁就获胜。现在假设甲先拿,什么情况下他不能保证必胜?什么情况下他必胜,具体的致胜策略是什么?
如果把“谁能迫使对方把最后的一个或多个棋子取走谁就获胜。”中的
“迫使对方”去掉,变为“谁能把最后(一堆)的一个或多个棋子取走谁就
获胜。”就对了! 大家再看看,这时就是“追山妹”问题了!
“分珍珠”游戏就是著名的“火柴棍”游戏,我这里有一个
“火柴棍”的拓展的游戏,名曰《智娶华山》,难度较“火柴棍”
游戏大些,但原理一样!
楼主所提的“分珍珠”游戏,可以试用我改编的《追山妹》
游戏代替。《追山妹》游戏与“分珍珠”游戏的不同点为:
1.任意行,每行任意个“山洞”;
2.轮谁堵住最后一个山洞,谁“赢”,即(追)到了(山妹)。
注明:因《智娶华山》与《追山妹》是用十年前的机器编程,
故《智娶华山》游戏程序中的声音有些不正常,望玩家谅解!!
[此贴子已经被作者于2005-12-20 19:03:36编辑过]
没有想周全,我错了,还猪哥哥的题有意思。
设:这三个数分别为 A 、B 、C ,把这三个数用“逻辑异或”相加。 若值为 0 ,则 甲 不能保证必胜! 否则,甲 必胜! 但是,若途中一旦出现 A 、B 、C 有且只有一个值为 0 , 例如 A = 0 ,则 甲 必胜!因为 甲 此时只须使 B = 0 ,可迫使对方把最后的 一个或多个棋子取走而获胜。
若 A Xor B Xor C <> 0 ,则甲先走必胜,他只需一直使 A Xor B Xor C 保持等于 0 就好。
如果 A=0 ,还是要满足以上的条件,其实就是甲要保持 B = C <> 1。
我愈发佩服 ggglgq 老师,数学家就是厉害,我要看李世春教授的书!!!!!!!
ggglgq老师“逻辑异或相加”的说法应该是正确的,但一般不大看的明白。后面的“但是,若途中一旦出现 A 、B 、C 有且只有一个值为 0 , 例如 A = 0 ,则 甲 必胜!因为 甲 此时只须使 B = 0 ,可迫使对方把最后的一个或多个棋子取走而获胜。”可能有点问题,如A=0,而B=C时,甲不能必胜,比如三数为0,2,2 时你先走,将不能保证必胜,由于数字简单,大多数情况会因对方看破而输。
这时 甲 当然是后走的啦。
呵呵,关键是楼主的题目有问题!
如果把“谁能迫使对方把最后的一个或多个棋子取走谁就获胜。”中的 “迫使对方”去掉,变为“谁能把最后(一堆)的一个或多个棋子取走谁就 获胜。”就对了!问题是没有的,只是 “或多个”三个字是多余的,没人会傻到最后把棋都取走。
这样讲就对了:“谁能迫使对方把最后的一个棋子取走谁就获胜。”
这个题目有点难度,各位解答我看不懂。目前我只知道走出以下情况必胜:
1. 0 n n (n>=2)
2. 1 2n 2n+1 (n>=1)
3. 2 4n 4n+2 (n>=1)
4. 2 4n+1 4n+3 (n>=1)
5. 3 4n 4n+3 (n>=1)
6. 3 4n+1 4n+2 (n>=1)
7. 4 8n 8n+4 (n>=1)
8. 4 8n+1 8n+5 (n>=1)
9. 4 8n+2 8n+6 (n>=1)
10. 4 8n+3 8n+7 (n>=1)
[此贴子已经被作者于2005-1-18 22:03:05编辑过]
不行,还是不明白,大烟头的我就看明白了,我也是这样推的。
另外按Xor思想做了个解法,大家试试:
http://www.aoyacn.com/mf/1.exe
这个题目有点难度,各位解答我看不懂。目前我只知道走出以下情况必胜:
1. 0 n n (n>=1)
糊涂,0,1,1 岂不输了。
不行,还是不明白,大烟头的我就看明白了,我也是这样推的。
另外按Xor思想做了个解法,大家试试:
糊涂,0,1,1 岂不输了。
仅以《追山妹》为例作简单说明 ( 楼主的题目同理 [ 但要注意 1 0 0 、1 1 1 ] ):
设这 n 个数分别为 A1 、A2 、A3 ...... An (十进制数),
甲 始终要给 乙 造成 0 0 0 0 ...... 0 0 0 0 (二进制) 的必败状态!
A1 = a1 b1 c1 d1 ...... g1 h1 i1 j1 (二进制) A2 = a2 b2 c2 d2 ...... g2 h2 i2 j2 (二进制) A3 = a3 b3 c3 d3 ...... g3 h3 i3 j3 (二进制) 逻辑异或运算 { .................... An = an bn cn dn ...... gn hn in jn (二进制) -------------------------------------------------------------------- 逻辑异或运算 的 值 0 0 0 0 ...... 0 0 0 0 (二进制)
此时,不论 乙 如何改变 A1 -- An 的值,都会破坏“逻辑异或运算”值为 0 的“必败状态”, 即造成 甲 “必胜”!然后 甲 再给 乙 来一个“异或必败”,让 乙“必败”,永世不得“翻身”![em07]
老大,急问
n堆,每堆球数可不等。
最多在m堆中拿,可以拿广任意堆(当然不大于m堆)
最少在某堆中要拿一个。
a先b后,
m,n什么关系时a胜?
m,n什么关系时vb胜?
谢谢了
呵呵,这些问题( n > m )好象都是用“异或运算相加法”处理,没什么新意。 解决的办法是:把 n 个数排序后找出其中最大的前 m 个数,然后把这 m 个数相加, 和为 z 。把这 m 个数看成 一个数 z ,这样你的问题便可以按照“楼主的题目” 解决了! 比如:( n = 6 , m = 2 ) n 个数为 2 3 5 7 8 10 ,这时 z = 8 + 10 = 18 问题转化为 2 3 5 7 18 的“楼主的题目”,便可以按照“楼主的题目”解决了!
___________________________________________________________________________
不过始终感觉“楼主的题目”对于问题扩展比较别扭,建议玩家参考“追山妹” 问题。
A,B,C不一定先算最大的,比如.4,5,6可以变为1,4,5,也可以
娈为2,5,6,这们的异或结果都是0
欢迎光临 魔方吧·中文魔方俱乐部 (http://bbs.mf8-china.com/) | Powered by Discuz! X2 |