废话少说
巴什博弈:给出一堆n个物体,双方每次可以从中拿出至少一个,最多m个。给出n,m的数值
问:先手方是否会赢
分析:
对于博弈问题通常有这样的必败点和必胜点分析方法又成P/N分析法
此法有如下定理:
0.终点是必败点(这也是下两条的前提)
1.只用一步就到必胜点的必为必败点
2.只用一步就能走到必败点的就是必胜点
上一道题来理解
杭电:http://acm.hdu.edu.cn/showproblem.php?pid=2147
题意:
给出一个m*n的矩阵,要求从右上通过每次向,左,下,左下(三选一)的方式来移动,最终走到左下点。
kiki先移动,然后zz进行移动,二者每次均会选优的策略
问:kiki是否会赢
是否会赢从一开始已经决定好了
0代表必败点,1代表必胜点
0 1 0
1 1 1
0 1 0
以此类推
可以找到其中的数学规律
那么就是如果(m&1)&&(n&1)那么就会输掉比赛
否则就赢
怎么样简单吧
再来看看正经的巴什博弈
以牛客网上图灵杯的一个seek joker 为例
建立一个数轴
0 1 1 0 1 1 0
1 m m+1 2m 2m+2 3m 3m+3
看懂了吗?解释一下
下面那行mmm的行是代表n的值
0为必败点,上一个杭电的题每次走的距离就只有1,所以就只能移动“1”的距离
而巴什博弈每次可以移动m的距离,把m看成“单位1”如何?如果我现在在m的位置上,我走m-1的距离,下一家走的时候他至少要走1,那么他就输了,我就赢了,所以m为必胜点
所以把这个距离放到x倍如何
得出n%(m+1)!=1那么先手胜出
PS :那么根据之前的P/N分析法就可以轻松得出我给出的“n”值和输赢的关系