威佐夫博奕

接上次的巴什博奕之后,我在说说威佐夫博奕。

仍然先简单介绍一下:有两堆物品若干,数量可以相同可以不同,两个人轮流从某一堆任意取或是同时从两堆中取同样多的物品,规定每次至少取一个,与巴什博奕不同,这里没有规定取出的物品的上限,最后取完物品的人获得游戏胜利。

这种情况比之前的巴什博奕略微复杂一点。


我们使用(mk, nk)(假定mk<nk,k是自然数)表示两堆物品各自的数目,同时,在这里我们定义(mk, nk)为此时的局势。如果其中一个人面对的是(0, 0)那么说明他已经输了,我们将(0, 0)这样的定义为奇异局势。然后,在这之前的非奇异局势有:(1, 2),(3, 5),(4, 7),(6, 10),(8, 13),(9, 15),(11, 18),(12, 20)……

对于奇异局势,我们有这样的一个性质:nk=mk+k,且mk是前k项里面未出现的数字中最小的。

奇异局势另外3个性质:

1、任何非零自然数都包含在一个且仅有一个奇异局势中。

2、任意操作都能将奇异局势变成非奇异局势。

3、采用适当的方法能将非奇异局势变为非奇异局势。


假设现在的局势是(m, n),(mk, nk)是一个奇异局势(假定m<=n,mk<=nk)(k是任意自然数)

根据题目设定,我们有一下几种情况:

如果m=n,那么一个人只用同时从两堆中取走m个物体,就变为了奇异局势(0, 0),这样一来下一个人就算输了。

如果m=mk,n>nk,那么,一个人取走n-nk个物体,此时就变为奇异局势。

如果m=mk,n<nk,那么一个人同时从两堆中拿走一定的数量的物品,最后一定能得到mk与nk的差值是n-m的一个奇异局势。

如果m>mk,n=mk+k,那么一个人从第一堆中拿走多余的数量m-mk的物品就仍然是一个奇异局势。

如果m<mk,n=mk+k,此时有两种可能:

     m=mi(i<k),那么一个人从第二堆里面拿走n-ni就仍然是一个奇异局势。

     或者

     m=ni(i<k),那么一个人从第二堆里面拿走n-mi还是一个奇异局势。


从性质一:不可能存在n!=nk,并且m!=mk的情况。也就是说,一定能找到一个nk或者是mk使得n=nk或者是m=mk。

综合性质二和三:两个人如果都想采取最好的操作,那么第一个面对奇异局势的人一定在整个游戏的过程中都是面对的奇异局势,因为无论他怎么取,第二个人一定能找到一个方法把此时的局势变成奇异局势。

也就是说,对于一个非奇异局势,先拿的人一定获得游戏的胜利。


根据一定的推导(在这里省去了),对于一个局势(m, n),如果它是一个奇异局势,那么一定有

     m=[k*(1+sqrt(5)) / 2],并且n=m+k。(特别说明:[……]表示取……的整数,类似于(int)(……))


Problem Solved!


特此感谢编辑百度百科各位大神。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值