蓝桥杯历届试题-高僧斗法(博弈论)

蓝桥杯历届试题-高僧斗法是一道尼姆堆博弈论(Nim游戏),本文只对尼姆堆问题进行粗略的解释,不对题目进行讲解,我相信只要搞清楚了尼姆堆这种博弈论问题之后,这道题将会迎刃而解。

一般的Nim游戏是这样的:有n个石堆,每堆里有数量一定的石子,两人从其中任意一堆中取任意数量的石子(不能超过这堆石子数的最大值),不能不取,最后某个人取完,所有石堆中的石子数量都为0时,另一个人就为输。

这里要先介绍一些概念:定义两个状态,分别为N和P,N代表Next-position,可以理解为先手必胜状态,P代表Previous-position,可以理解为后手必胜状态。(如果实在搞不清楚这个也没关系,直接看结论)

结论:当游戏开始时,各个石堆(a1,a2,a3…an),当且仅当a1 ^ a2 ^ a3 ^ … ^an=0时它为P。即先手必败。(至于这个结论是如何得出的,可以百度深入了解一下)

所以我们以后遇到这种博弈论问题时,直接把这些石头的数量相互异或,如果结果为0,则先手必败;否则先手必胜。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章