本文共 657 字,大约阅读时间需要 2 分钟。
有一堆数量为n的石子,游戏双方轮流取石子,满足以下条件:
约定取走最后一个石子的人为赢家。
当n为斐波那契数时,先手必败。
齐肯多夫(zeckendorf)定理:任何正整数都可以表示成若干个不连续的斐波那契数(不包括第一个斐波那契数)之和。
例如,n=54可以写成:n=2+5+13+34。
反之,如果n是斐波那契数,A无法阻止B按照斐波那契数规则取走最后一个石子,从而让B获胜。
有三堆石子,数量分别为(a, b, c)。两个人轮流从某一堆中取任意多的石子,规定每次至少取一个,多者不限。最后取光者得胜。
如果三堆石子数量的异或(a ^ b ^ c)为0,则先手必败;否则先手必胜。
略述。
for(int i = 1; i <= n; i++) { sum ^= ans;}if(sum == 0) { cout << "后手必胜";} 公平组合博弈属于Impartial Combinatorial Games,属于Nim游戏的一种变种。其核心是通过数学模型确定必败态和必胜态。
转载地址:http://ymwb.baihongyu.com/