Fibonacci Nim(斐波那契尼姆)游戏

游戏描述:

Fibonacci Nim是Nim游戏的变种,其规则为两名玩家从一堆硬币中交替移除硬币,第一步中,不允许玩家拿走所有硬币,也不允许不取,并且在每次后续移动中,移除的硬币数量最多可以是上一次移除数量的两倍,拿走最后一枚硬币的玩家获胜或者失败,如果判失败,只要第一个人取走(n-1)个硬币就必胜

结论

如果双方足够聪明,只要开局硬币数量不是斐波那契数,那么当(n)为斐波那契数的时候先手必败(即后手必胜)

证明

如果硬币数量是斐波那契数,设该数为(F(k+2)),有(F(k+2)=F(k+1)+F(k)),可以将硬币看作两堆(F(k+1))(F(k)),如果先手取走(F(k))及以上,那么后手必胜,(毕竟(F(k+1)<2*F(k))),那么先手只能在(F(k))的一堆中取硬币,就是上一个问题的子问题,那么后手也肯定能取走该堆最后一枚硬币,那么剩下的一堆硬币也可以如此拆分,那么如此先手必败。如果硬币数量不是斐波那契数,根据Zeckendorf定理(齐肯多夫定理),正整数都可以表示成若干个不连续的斐波那契数之和。那么我们可以将硬币数(n)表示为(n=F(a_1)+F(a_2)+.....F(a_n)),((a_1>a_2>.....a_3)),先手可以先取完最小的一堆,由于各个斐波那契数不连续,即有(F(a_{i-1})>2F(a_i)),后手肯定取不完剩下的最少的一堆硬币,此时相当于后手面对该游戏的必败态,对于以后的每一堆,先手都能取到这一堆的最后一枚硬币从而获胜

原文地址:https://www.cnblogs.com/graytido/p/11482723.html