尼姆博奕(Nimm Game)

2021-09-10 23:19:15 字數 728 閱讀 6839

尼姆博奕

有n堆石子。a b兩個人輪流拿,a先拿。每次只能從一堆中取若干個,可將一堆全取走,但不可不取,拿到最後1顆石子的人獲勝。假設a b都非常聰明,拿石子的過程中不會出現失誤。給出n及每堆石子的數量,問最後誰能贏得比賽。

假設三堆石子,奇異局勢有(0, 0, 0), (0, n, n), (1, 2, 3)等等,每一組的幾個數異或起來後為0。

定理:一組自然數中必然存在乙個數,它大於等於其它所有數按位異或的結果。

所以乙個必敗局面(奇異局勢)無論做出何出操作,最終結果都是輸的局面。必敗局面經過2次操作後,可以達到另乙個必敗局面。

乙個必勝局面經過1次操作後一定可以達到必敗局面。

所有物品數目二進位制異或結果為0,此時為必敗局面,則先手必輸

所有物品數目二進位制異或不為0,此時為必勝局面,一次操作後一定可以轉為必敗局面,則後手必輸

#include

#include

#include

#include

#include

using namespace std;

intmain()

if(ans==0)

printf

("先手lose");

else

printf

("先手win");

return0;

}

尼姆博弈(巴什博奕)

尼姆博弈 有三堆各若干個物品,兩個人輪流從某一堆取任意多的物品,規定每次至少取乙個,多者不限,最後取光者得勝。這種情況最有意思,它與二進位制有密切關係,我們用 a,b,c 表示某種局勢,首先 0,0,0 顯然是奇異局勢,無論誰面對奇異局勢,都必然失敗。第二種奇異局勢是 0,n,n 只要與對手拿走一樣...

巴什博奕 尼姆博弈

只有一堆n個物品,每次至少取a個,最多取b個 問題可分為 1.最後取完者勝 面臨 a b k個物品的人必敗 2.最後取完者敗 面臨 a b k a個物品的人必敗 因此當兩個都極其聰明的人博弈時,就看有多少個物品,自己先手取了之後能否讓對手面臨必敗點 對於最後取完者勝的情況 對取物品方面又可分為 最後...

upc 居合(尼姆博奕)

題目描述 虛擬世界要舉行乙個劍術大會,小y和小x進入了決賽,決賽進行k個回合。決賽賽制為地上有n個木樁子,每次小y或者小x能砍其中乙個柱子,他們可以選擇砍掉柱子的一截 整數高度 或者是直接砍掉柱子。每回合中,誰砍掉了最後乙個柱子,誰將贏下這個回合。機制的小y鈔能力買通了裁判,每局都讓小y先出手 輸入...