偶然在百度看到的一个规则有点像“取硬币”游戏的“消灭游戏”

zzPandazz 2010-11-24 11:17:58
首先,游戏开始前选一个正整数N作为起始状态,可假设为N个单位。

游戏中,双方轮流消灭这N个单位的其中一部分,每次都必须是一个正整数单位(最少1),消灭最后一个单位者胜。

此外,还有两个规则:

一、一开始第一步时不能一下子消灭全部N个单位。

二、每一手能消灭的单位不能超过上一手的两倍。

例如:上一手消灭了5个单位,那么这一手最多可消灭10个单位,最少消灭1个。


很明显,假如一方消灭余下单位的1/3或以上,另一方下一步可立刻取胜,所以每一次都应该消灭余下单位的1/3以下。

对局例子:起始N=100,A消灭33余下67,B消灭22余下45,A消灭14余下31,B消灭10余下21,A消灭6余下15,B消灭4余下11,A消灭3余下8,B消灭2余下6,A消灭1余下5,B消灭1余下4,A消灭1余下3,B消灭1余下2,最后A消灭全部2单位得胜。

注:上一手是指对方刚刚结束的一手,而不是自己上一回合的一手。 所以如对局例子中,A第一手消灭33,所以接着B最多只能消灭66个单位,但B只消灭了22个,所以接下来A最多只能消灭44个单位,如此类推……当一方消灭1个单位时,另一方最多可消灭2个单位(最少1个)……
...全文
232 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiuzhenguang 2010-11-26
  • 打赏
  • 举报
回复
博弈
回复内容太短了! 回复内容太短了!
qiuzhenguang 2010-11-26
  • 打赏
  • 举报
回复
我也觉得是NIM博异的一种推广。
zzPandazz 2010-11-25
  • 打赏
  • 举报
回复
以下是某人的结论

至于先手胜的必胜法如下:

总数n的消灭游戏:找出小于n但最接近n的菲波那契数Xn,此时:如果n<3/2Xn,则直接把n拿成Xn的局面;如果n>=3/2Xn,则构造一个子游戏n'=n-Xn,继续寻找小于n'但最接近n'的菲波那契数Xn',此时:如果n'<3/2Xn',则直接把n'拿成Xn'的局面;如果n'>=3/2Xn',则构造一个子游戏n''=n'-Xn',继续寻找小于n''但最接近n''的菲波那契数Xn''。。。。。。

举个例子吧:总数32的游戏,首先寻找小于32但最接近32的菲波那契数21,由于32>3/2*21,则我们构造子游戏为总数32-21=11的游戏,寻找小于11但最接近11的菲波那契数8,由于11<3/2*8,则我们可以子游戏的必胜法为消灭3个单位,其亦为原游戏的必胜法。
绿色夹克衫 2010-11-25
  • 打赏
  • 举报
回复
很早以前做过这个题,当时怎么推的记不清了,应该是按照nim问题的必败局递推出来的。
具体还是看看mathe大牛的推导吧,比较专业。

[Quote=引用 7 楼 yaoweijq 的回复:]

这个是怎么推导出来的?
只想到用程序递推枚举。。。
引用 6 楼 litaoye 的回复:
斐波那契数列
[/Quote]
zzPandazz 2010-11-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zkkpkk 的回复:]
是要找出必胜的方法,可以分不同情况,比如奇偶数,先后手什么的情况
[/Quote]
他说的余下单位是指你没拿之前剩余的单位,比如剩10个,你拿4个的话对方就赢了,但是你拿3个的话,就没分出胜负
fenix124 2010-11-25
  • 打赏
  • 举报
回复
数据量不大的话可以使用DP来计算。如果大的话可能有规律
mathe 2010-11-25
  • 打赏
  • 举报
回复
yyfhz 2010-11-25
  • 打赏
  • 举报
回复
二、每一手能消灭的单位不能超过上一手的两倍
。。。
很明显,假如一方消灭余下单位的1/3或以上,另一方下一步可立刻取胜,所以每一次都应该消灭余下单位的1/3以下。
。。。
这里LZ说错拉,应当是“假如一方消灭对方的数量超过了本方的1/2或以上,下一轮对方即可取胜”,所以每一次消灭的数量应当在本方的1/2以下或者直接消灭对方的所有数量。

=====================================================
自己的看法:
N=1,无解
N=2,3,4 先取者负
N>4, 先取者第1次取[(N-1)/2]个([]表示采用舍尾取整),然后每一次取
if(m*2>=c)? c: min(m*2,[(n-1)/2]) 这里c为对方剩下的数量,m为上一次对方拿走的数量,n是自己剩下的数量。采用这种方式,可以一直保持先取放的剩余数量在对方剩余数量的2倍,因此先取者胜。
jinwen0915 2010-11-25
  • 打赏
  • 举报
回复
我觉得在公平的条件下,2人对局的问题求胜负无法计算出来,除非一人是白痴,那也就没什么意义了。

在双方都有思考能力的情况下,我认为最后的结果应该是不得已才输了。

这样的话,最后应该是剩下4个,然后我先取1个,这样对方就必然输,为了当成这个条件,之前如何取很难判断。
齊麟 2010-11-25
  • 打赏
  • 举报
回复
...........
yaoweijq 2010-11-25
  • 打赏
  • 举报
回复
这个是怎么推导出来的?
只想到用程序递推枚举。。。
[Quote=引用 6 楼 litaoye 的回复:]
斐波那契数列
[/Quote]
绿色夹克衫 2010-11-25
  • 打赏
  • 举报
回复
斐波那契数列
zzPandazz 2010-11-24
  • 打赏
  • 举报
回复
是要找出必胜的方法,可以分不同情况,比如奇偶数,先后手什么的情况

33,008

社区成员

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

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