博弈论Nim游戏个人证明

题目背景

\(n\) 堆石头,每堆石头有 \(a_i\)​ 个,两个玩家轮流取走任意一堆的任意个物品,但不能不取。

取走最后一堆物品的人获胜。

已有证明

对于 OI Wiki 或者《信息学竞赛进阶指南》等,它们的证明方式稍显晦涩,难懂。

具体可参见

个人证明

基本思路为:从特殊到一般,由浅入深

一.从特殊代入思考

首先我们知道,对于没有石头的情况,先手必败。 ··· ···局面1

同样的,对于 1 堆石头的情况,先手必胜。因为一下取完后,后手无石可取,就输了。 ··· ··· 局面2

其次我们看看以下情况:偶数行石头(列数相等)

1.png ··· ··· 局面3

此时先手怎么拿,后手怎么拿,就能使先手必败

  • 比如先手把第一行全拿走,后手把第二行全拿走,先手败。

  • 或者先手在第一行拿一个,后手在第二行拿一个,再重复,也是先手败。

不难想出,双方的最优策略都是把自己变成局面3的“后手”

把自己变成局面3后手的充分条件(应该也是必要条件)是:

对于任意第n行来讲,要多出至少一个,即下面的局面4

2.png ··· ··· 局面4

不难发现此时先手取完第一行第三个后,变成了局面3,则后手必败(等价于先手必胜)

二.加深思考,提出猜想

不难发现,上述过程中,我们可以采用“合并”的思路。

局面3和局面1的结果相同,我们把局面3看作局面1,然后将局面3代入局面4,局面4就变成了局面2。

——(局面一是0个石头,“把局面3看作局面1”相当于“忽略局面3”,局面4的局面3一旦被忽略,就剩下一个了,就变成了局面2)

如果看不懂,请尝试手动模拟这一过程,加深理解。

上述句子是本猜想的重中之重,请读者务必完全读懂后继续阅读以下内容!!!

所以我们发现,局面3、4甚至更多复杂的局面是可以简化的

不如随便乱画点出来,试着简化:

尝试1

3.png

先把第二、三行忽略,只看一、四行,再把第一列忽略。

发现只剩下一个石头,是先手必胜的局面。

事实如此吗?

我们可以试试。

先手取第四行第二个,此时可看作两个不同的局面3合在一起,后手怎么拿,先手就怎么拿,这样就可以胜利了。

所以显然,简化此种情况成立。

尝试2

4.png

此种情况比上述情况多了下面一个

于是在忽略二、三行后再忽略第一列(不包括最后一个,因为不满足局面3)时发现,当前局面是

5.png

注意,此时看似像局面3,但并不是局面3,我们可以近似地看作两个石头并列

6.png

不难发现这也是先手必胜的.

同样的,我们可以试试怎么拿.

先手直接取走第四行所有石子,此时转化为局面3,使得后手必败(等价于先手必胜).

总结

那我们找找规律,发现我们只不过是把所有的,可能存在的局面3全部消除了,再看剩下的是先手还是后手赢.

可以理解为:先手后手的最优策略都是往局面3上靠近,所以他们都没必要花费一次行动机会,来破坏局面3.

我们仔细一看,不难发现“消除存在的局面3”操作无非就是 \(xor\) 计算。把它们全部 \(xor\) 后得到0就证明,局面原本是先手必败的局面3;得到非0就证明是先手必胜的局面4.

综上,所有数 \(xor\) 后得到0就是先手必败,相反就是先手必胜.

证毕.

posted @ 2024-10-22 10:25  azaa414  阅读(53)  评论(1)    收藏  举报