博弈論 Nim博弈 反Nim博弈 SG函式

2022-06-13 04:51:13 字數 1015 閱讀 1992

nim遊戲 hdu1846

若各堆石子異或和為不為零,則先手勝 ,後手當且僅當異或和為零時取勝

此題問要想先手取勝第一步的取法,考慮到上述引理,只需遍歷一遍石子找到異或和的最高位匹配的個數。

int a[105

];int

main()

}return0;

}

view code

hdu 1848

在上題的基礎上取法只許取斐波那契數列的大小

考慮sg函式模板

int f[50], sg[1005], mex[1005

];int getsg(int

n)

for (int j = 0;; j++) if (!mex[j])

}return

sg[n];

}int

main()

while (scanf("

%d%d%d

", &n, &m, &p),n||m||p)

return0;

}

view code

hdu1907 

反nim遊戲,最後一步取的人敗

先手必勝的情況有兩種,只要是這兩種情況之一就為先手必勝,

一:各堆石子數目異或結果不為零,且至少有一堆石子數目大於1

二:各堆石子數目異或結果為零,且所有堆石子數目均為1;

博弈論 Nim博弈

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

Nim博弈(博弈論)

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

博弈論 取石子(反 Nim 博弈)

alice與bob在一起玩乙個遊戲。現在有乙個字串s,每個人可以選擇字串中的某乙個區間和一種字元,刪除這個區間內的所有該字元 需要刪除字元的數量至少為1 從alice開始,alice與bob輪流進行進行這個操作,若在某個玩家刪除前,字串已經為空,則該玩家獲勝。假設alice和bob都會按照其最優的解...