尼姆博弈(Nimm‘s Game)

定义有三堆各若干个物品,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限,最后取光者得胜。

尼姆和:把所有堆中物体的个数进行异或运算
如:n堆物品, 每堆物品个数分别为a[1] a[2]…a[n], 尼姆和=a[1]^a[2]^…a[n]
规则及PN态:
1.取光人的获胜
当尼姆和==0时必败
面临非必败态时采取的策略:
假设 a < b < c,只要将 c 变为a XOR b,即可。因为有如下的运算结果:
a XOR b XOR (a XOR b)=(a XOR a) XOR (b XOR b) = 0 XOR 0 = 0
要将c 变为a XOR b,只要对 c进行 c-(a XOR b)这样的运算即可

2.取光的人失败
尼姆和为0时必败
首先按照普通规则一样的策略进行,直到恰好有一个物品数大于1的堆x。在这样的情况下,只需要把堆x中的物品拿得只剩1个物品或者拿完,让对手面临奇数堆物品,这奇数堆物品每堆恰好1个物品。这样的状态显然是必败的。由于每次操作后需要保证Nim和为0,因此不可能在你操作后首次出现“恰好有一个物品数大于1的堆”。新游戏得到了完美解决

推广到n堆物品, 仍满足面临尼姆和==0状态时必败;

猜你喜欢

转载自blog.csdn.net/liudazhuang98/article/details/80156559