巴什博弈
一堆n個物品,兩個人輪流取1~m個,最後乙個取光的人勝利
if(n%(m+1)) return false;
else return true;
wythoff博弈
兩堆各若干個物品,兩人輪流從一堆中取走至少乙個,或者從兩堆中取走相同數量的物品,最後乙個取光的人勝利
差值 * **分割比 == 最小值時後手贏,否則先手贏
double r = (sqrt(5.0)+1) / 2;
int d = abs(a-b) * r;
if( d != min(a,b) ) return true;
else return false;
尼姆博弈
n堆物品,兩人輪流取至少乙個,最後乙個取光的人勝利
int res = 0;
for(int i=1;i<=n;i++)
if(res) return true;
else return false;
sg函式
hdu1848,斐波那契堆
#include #include #define maxn 3010
using namespace std;
int f[maxn], sg[maxn];
void init()
}}void get_sg()
for(int j=0; j<=1000; j++)}}
}int main(void)
if(sg[n]^sg[m]^sg[p])else
}return 0;
}
hdu1847,二的冪次
#includeusing namespace std;
const int maxn = 1010;
int a[20];
int sg[maxn+5];
int n;
int vis[maxn+5];
//sg[1] == 0 //必勝局
//sg[2] == 0 //必勝局
void getsg()
for(int j=0;j>n)
return 0;
}
記憶化搜尋的遞迴寫法:
memset(sg,-1,sizeof(sg));
int mex(int x)
for(int i=0;;i++)
} return sg[x];
}
小結 基礎博弈
小結一下基礎博弈,因為暫時對博弈的理解還不是很深,只能說一下我對這段時間對博弈的認識。博弈論的簡介 博弈論是二人或多人在平等的對局中各自利用對方的策略變換自己的對抗策略,達到取勝目標的理論。博弈論是研究互動決策的理論。博弈可以分析自己與對手的利弊關係,從而確立自己在博弈中的優勢,因此有不少博弈理論,...
博弈論小結
博弈論,今天算是告一段落了。博弈模型為兩個人輪流決定的非合作博弈,即兩個人輪流進行決策,並且每次都會採用最優策略。博弈模型必須是有限布可以完成的。對兩個人的規則是公平的。p狀態 必敗態 前乙個選手 previous player 將取勝的位置稱為必敗點。n狀態 必勝態 下乙個選手 next play...
博弈論小結
孤單堆的根數異或只會影響二進位制的最後一位,但充裕堆會影響高位 非最後一位 乙個充裕堆,高位必有一位不為0,則所有根數異或不為0。故不會是t態。定理5 s0態,即僅有奇數個孤單堆,必敗。t0態必勝。證明 s0態,其實就是每次只能取一根。每次第奇數根都由己取,第偶數根都由對 方取,所以最後一根必己取。...