给定一个正整数N,表示N份青草放在一个仓库里面,有一只牛和一只羊,牛先吃,他俩轮流进行吃草,不管是牛还是羊,每一轮吃的草量,必须是
1,4,16,64.。。。
谁先把草吃完,谁获胜;
假设:牛和羊都是绝顶聪明,都想赢,都会做出合理的决定;
无论暴力求解还是递归求解的思想都是一致的,只不过一个从顶到下(递归),动态规划从下到顶(动态规划);
基本思想:遍历所有的取草的可能性,如果存在一种情况,无论后手怎么拿,获胜的都是先手,否则,获胜的是后手
博弈问题的核心:就是理解身份的转换;
暴力求解
private String eatGrass(int n) {
// base
if (n < 5) {
return n == 1 || n == 3 || n == 4 ? "先手" : "后手";
}
int eat = 1;
while (eat <= n) {
//在这个地方递归调用
String who = eatGrass