辅导资料 博弈问题(取球问题、组合博弈论)
程序员文章站
2022-06-20 12:15:01
...
一、取球游戏
代码如下:
package sf_1;
//博弈问题
/*
* f(局面 x) -->胜负?
* for(对所有可能的走法){//进行暴力**
* 试着走一步 -->局面y
* 胜负 t=f(y) -->(我走了一步棋后,把残局交给对方去走)
* if(t==负) return 胜;
* 在试验过后 应该恢复局面。
* }
* return 负;//走了所有的走法 对方都赢 那么则我输。
*/
public class Main {
//局面: n:所剩球的数目。
public static boolean f(int n){
if(n>=1&&f(n-1)==false) return true;
if(n>=3&&f(n-3)==false) return true;
if(n>=7&&f(n-7)==false) return true;
if(n>=8&&f(n-8)==false) return true;
return false;
}
public static void main(String[] args) {
//10个球给我是赢的。
System.out.print(f(10));
}
}
运行截图:
二、组合博弈论