Nim和anti-Nim

概述

Nim游戏是一种经典的博弈论模型。需要熟练掌握和运用。

Nim

模型

Nim游戏是指这样一种游戏:

有若干堆石子,两个玩家轮流进行操作。两个玩家公平操作,每次操作可以从任意一堆里取出任意个,但是不可以不取。当一个玩家无法进行操作时他输掉游戏。

结论

设每堆石子的个数分别为x1,x2,...,xnx_1,x_2,...,x_n,设X=x1  Xor  x2  Xor  ...  Xor  xnX=x_1\;Xor\;x_2\;Xor\;...\;Xor\;x_n,则若X>0X>0则先手必胜,X=0X=0则后手必胜。其中XorXor是异或运算。

证明

游戏中有这两种状态:

  1. 异或和为0
  2. 异或和大于0

首先,一颗石子都没有是必败态,包含在状态1中。

假如现在处于状态1,要么当前玩家已经输掉比赛,要么他做任意操作使得状态1变为状态2。

考虑对于一个状态2,我们必然可以有一种取法,使得状态2变为状态1。取法如下:假设当前异或和为X=x1  Xor  x2  Xor  ...  Xor  xnX=x_1\;Xor\;x_2\;Xor\;...\;Xor\;x_n对于XX在二进制下的最高位kk,必然至少有一个xix_i这一位是1(反证法)。把xix_i减小的过程可以看作先去掉xix_i再加入一个xnewx_{new},即原式变为X  Xor  xi  Xor  xnew=x1  Xor  x2  Xor  ...  Xor  (xi  Xor  xi)  Xor  xnew  Xor  ...  Xor  xnX\;Xor\;x_i\;Xor\;x_{new}=x_1\;Xor\;x_2\;Xor\;...\;Xor\;(x_i\;Xor\;x_i)\;Xor\;x_{new}\;Xor\;...\;Xor\;x_n

因为要使X  Xor  xi  Xor  xnew=0X\;Xor\;x_i\;Xor\;x_{new}=0X  Xor  xi=xnewX\;Xor\;x_i=x_{new}xnewx_{new}在二进制下高于kk的位上和xix_i相等,在第kk位上xix_i是1而xnewx_{new}是0,所以xnew<xix_{new}<x_i,取法可行。

由上可知,先手假如处在状态2,那么他只要每次都把状态2变成状态1,就可以必胜。反之,要是先手处在状态1,那他的对手每次也都可以经过操作再次让他处在状态1,所以必败。

anti-Nim

模型

操作和Nim游戏一样,唯一不同的地方是无法操作的人赢。

结论

先手必胜,当且仅当:

  1. 所有堆的石子数都为1,并且每堆的石子数异或和为0(偶数堆)
  2. 至少有1堆的石子数大于1,并且每堆的石子数异或和大于0。

证明

对于第一种情形,显然,每次一个人只能取掉一堆,那么堆数为偶数时对手就是取最后一颗石子的人,先手就赢了。

对于第二种,分为两种情况:

第一种,只有一堆石子数大于1,此时异或和必然大于0。考虑对这堆数量大于1的石子操作。假如剩下的只有1个的堆有奇数个,先手就取完这堆,剩下奇数个只有一堆的石子,留给对手的就是必败态了。假如剩下的只有1个的堆有偶数个,先手就把数量大于1的那堆取到只剩一个,留给对手的同样是必败态。所以这种状态必胜。

第二种,有至少两堆的石子数大于1。

设此时异或和为0的状态为“状态1”,大于0为“状态2”。

对于状态2,根据Nim游戏的证明,我们必然有一种取法使得取完之后异或和为0。然后稍微证明一下这样取只可能将状态2转移到状态1而不可能是其他情况:因为最多只能取完一堆,所以剩余的石子数大于1的堆至少有1堆,并且又因为只有1堆石子数量大于1的时候(即第一种情况)异或和为不可能为0,所以用这种方法取我们一定可以把状态2转换为状态1。

对于状态1,不管如何取,异或和必然大于0,所以留给对手的状态必然是状态2或者只有一堆石子数量大于1的状态。因为只有一堆石子数量大于1是对手的必胜态,而假如转移到状态2的话对手还可以将状态变回状态1,所以处在状态1的人必将留给对手只有1堆石子数大于1的情况。所以状态1是必败态。从而,状态2是必胜态。

证毕。

运用

任何一种游戏可以将状态看做点,转移看做边,而整个游戏就是一张图。一个状态的SGSG函数是他的出边连向的所有状态的SGSG值组成的集合的mexmex。感性理解就是一个状态的SG(u)SG(u)值为xx,那么他能经过一步转移达到一个SG(v)[0,x1]SG(v)\in[0,x-1]

那么我们就能利用Nim游戏或者anti-Nim游戏的结论合并多个并列的游戏了。因为一个游戏的初始状态SGSG值为xx,相当于一个石子数量为xx的堆。

正因为其与SGSG函数的结合,所以Nim和anti-Nim的应用非常广泛。

后记

在此收藏一位大佬的博客,写的非常全面,还有其他各种博弈。clover_hxy

发布了166 篇原创文章 · 获赞 46 · 访问量 1万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览