概述
蓝桥杯历届试题-高僧斗法是一道尼姆堆博弈论(Nim游戏),本文只对尼姆堆问题进行粗略的解释,不对题目进行讲解,我相信只要搞清楚了尼姆堆这种博弈论问题之后,这道题将会迎刃而解。
一般的Nim游戏是这样的:有n个石堆,每堆里有数量一定的石子,两人从其中任意一堆中取任意数量的石子(不能超过这堆石子数的最大值),不能不取,最后某个人取完,所有石堆中的石子数量都为0时,另一个人就为输。
这里要先介绍一些概念:定义两个状态,分别为N和P,N代表Next-position,可以理解为先手必胜状态,P代表Previous-position,可以理解为后手必胜状态。(如果实在搞不清楚这个也没关系,直接看结论)
结论:当游戏开始时,各个石堆(a1,a2,a3…an),当且仅当a1 ^ a2 ^ a3 ^ … ^an=0时它为P。即先手必败。(至于这个结论是如何得出的,可以百度深入了解一下)
所以我们以后遇到这种博弈论问题时,直接把这些石头的数量相互异或,如果结果为0,则先手必败;否则先手必胜。
最后
以上就是落后棒棒糖为你收集整理的蓝桥杯历届试题-高僧斗法(博弈论)的全部内容,希望文章能够帮你解决蓝桥杯历届试题-高僧斗法(博弈论)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复