板子 博弈論

2022-07-24 21:33:18 字數 772 閱讀 4136

這裡存放三種基礎博弈論的板子。

看**趴,注釋寫了應用情況。

1 #include 2 #include 3 #include 4 #include 5

using

namespace

std;

6int

n,m,x;78

//巴什博弈 9//

只有一堆n個物品,兩個人輪流從這堆物品中取物,

10//

規定每次至少取乙個,最多取m個。最後取光者得勝。

11void

bash()

16else19}

2021

//威佐夫博弈

22//

有兩堆各若干個物品,兩個人輪流從某一堆或同時從兩堆中取同樣多的物品,

23//

規定每次至少取乙個,多者不限,最後取光者得勝 。

24void

wythoff()

30int t = m -n;

31if( n == int(1.0 * t *k))

34else37}

3839

//尼姆博弈

40//

有n堆石子,從任意一堆石子中取出任意數量的石子

41//

規定至少取一顆,至多取出這一堆剩下的所有石子,最後取光者得勝。

4243

void

nim()

50if(ans == 0)53

else56}

5758

intmain()

博弈論 Nim博弈

1.nim博弈的起源很早,至於歷史我們就不再說了,直接說它的使用場景。1 依舊是兩個人博弈,但是物品時n堆,每一堆有ai個。2 每個人可以挑選一堆取走若干個,但是不能不取。3 最先取完所有物品的人獲勝。4 結論 所以堆的物品的數量異或起來是0,先手必敗。2.乙個nim博弈的例項 nim博弈。乍一看這...

博弈論 博弈混合

給你乙個n m的棋盤,然後給你4種棋子,分別是 1.王 能橫著走,或者豎著走,或者斜著走,每次可以走1格 2.車 可以橫著走或者豎著走,每次可以走無數格 3.馬 走日字形,例如 如果現在在 1,1 可以走到 2,3 即先走一格直線,然後斜著走一格 4.王后 可以橫著走,或者豎著走,或者斜著走,每次可...

Nim博弈(博弈論)

1.題目 給定n堆石子,兩位玩家輪流操作,每次操作可以從任意一堆石子中拿走任意數量的石子 可以拿完,但不能不拿 最後無法進行操作的人視為失敗。問如果兩人都採用最優策略,先手是否必勝。思路 必勝狀態 a1 a2 an 0 可以走到某乙個必敗狀態 必敗狀態 a1 a2 an 0 走不到任何乙個必敗狀態 ...