博弈论Nim游戏个人证明
题目背景
有 \(n\) 堆石头,每堆石头有 \(a_i\) 个,两个玩家轮流取走任意一堆的任意个物品,但不能不取。
取走最后一堆物品的人获胜。
已有证明
对于 OI Wiki 或者《信息学竞赛进阶指南》等,它们的证明方式稍显晦涩,难懂。
个人证明
基本思路为:从特殊到一般,由浅入深
一.从特殊代入思考
首先我们知道,对于没有石头的情况,先手必败。 ··· ···局面1
同样的,对于 1 堆石头的情况,先手必胜。因为一下取完后,后手无石可取,就输了。 ··· ··· 局面2
其次我们看看以下情况:偶数行石头(列数相等)
··· ··· 局面3
此时先手怎么拿,后手怎么拿,就能使先手必败:
-
比如先手把第一行全拿走,后手把第二行全拿走,先手败。
-
或者先手在第一行拿一个,后手在第二行拿一个,再重复,也是先手败。
不难想出,双方的最优策略都是把自己变成局面3的“后手”。
把自己变成局面3后手的充分条件(应该也是必要条件)是:
对于任意第n行来讲,要多出至少一个,即下面的局面4:
··· ··· 局面4
不难发现此时先手取完第一行第三个后,变成了局面3,则后手必败(等价于先手必胜)
二.加深思考,提出猜想
不难发现,上述过程中,我们可以采用“合并”的思路。
局面3和局面1的结果相同,我们把局面3看作局面1,然后将局面3代入局面4,局面4就变成了局面2。
——(局面一是0个石头,“把局面3看作局面1”相当于“忽略局面3”,局面4的局面3一旦被忽略,就剩下一个了,就变成了局面2)
如果看不懂,请尝试手动模拟这一过程,加深理解。
上述句子是本猜想的重中之重,请读者务必完全读懂后继续阅读以下内容!!!
所以我们发现,局面3、4甚至更多复杂的局面是可以简化的!
不如随便乱画点出来,试着简化:
尝试1
先把第二、三行忽略,只看一、四行,再把第一列忽略。
发现只剩下一个石头,是先手必胜的局面。
事实如此吗?
我们可以试试。
先手取第四行第二个,此时可看作两个不同的局面3合在一起,后手怎么拿,先手就怎么拿,这样就可以胜利了。
所以显然,简化此种情况成立。
尝试2
此种情况比上述情况多了下面一个
于是在忽略二、三行后再忽略第一列(不包括最后一个,因为不满足局面3)时发现,当前局面是
注意,此时看似像局面3,但并不是局面3,我们可以近似地看作两个石头并列
即
不难发现这也是先手必胜的.
同样的,我们可以试试怎么拿.
先手直接取走第四行所有石子,此时转化为局面3,使得后手必败(等价于先手必胜).
总结
那我们找找规律,发现我们只不过是把所有的,可能存在的局面3全部消除了,再看剩下的是先手还是后手赢.
可以理解为:先手后手的最优策略都是往局面3上靠近,所以他们都没必要花费一次行动机会,来破坏局面3.
我们仔细一看,不难发现“消除存在的局面3”操作无非就是 \(xor\) 计算。把它们全部 \(xor\) 后得到0就证明,局面原本是先手必败的局面3;得到非0就证明是先手必胜的局面4.
综上,所有数 \(xor\) 后得到0就是先手必败,相反就是先手必胜.
证毕.

浙公网安备 33010602011771号