巴什博奕基础情形
只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。
如果n = m + 1; 我们假设第一个人拿走了k个, 还剩下 m + 1 - k。 因为1<=(m + 1 - k)<= m, 所以, 剩下的部分一定可以被第二个人一次性取走。
现在我们将上述规律加一推广:
如果n=(m+1)r+s(r∈ N,s<= m);
那么先取者要拿走s个物品,如果后取者拿走k(k<= m)个,那么先取者再拿走m+1-k个,结果剩下(m+1)(r-1)个,
以后保持这样的取法,那么先取者肯定获胜
那么在我方取最优解的情况下:
现在我们就发现了巴什博弈的一个必败态: (m + 1)* r (r∈ N);
那么巴什博弈的必胜态也就可以反推出来: (m + 1)* r + k (1<=k<= m, r ∈N);
现在我们换一个角度来考虑这个问题:
如果物品数量随机,那么先手一方胜利的概率是m/(m+1),后手方胜利的概率是1/(m+1)
对于上述的问题, 我们可以用mod的方法快速的求出答案(其实三种博弈的最优美之处就是能用 %^&这三个符号完美解答)
`
巴什博弈演变
硬币问题1
Alice和Bob在玩这样的一个游戏, 给定k个数组a1,a2,a3,……ak。 一开始, 有x枚硬币, Alice和Bob轮流取硬币, 每次所取硬币的枚数硬顶要在 a1,a2,a3,……ak之中。 Alice先取, 取走最后一枚硬币的一方获胜。 当双方都采取最优策略的时候, 谁会获胜? 题目假定a1,a2,a3,……ak之中一定有1。
下面我们来分情况讨论到达自己时, 还有j枚硬币的胜负情况:
1.题目规定, 取光所有的硬币就获胜, 这等价于轮到自己时如果没有硬币就失败, 因此j = 0时是必败态。
2.如果对于某个i(i<=i<= k), 就j - ai是必败态, 那么j就是必胜态(如果当前有j枚硬币, 只要取走ai枚对手就必败→自己必胜);
3.如果对于任意的i(1 <= i <= k), j - ai都是必败态的话, j就是必败态(无论对手这么走, 对手都必胜, 自己必败)
根据这些规则, 我们都能利用动态规划