古代的nim
\operatorname
nim取石子遊戲是由兩個人面對若干堆石子進行的遊戲。
設有n ≥2
n\ge 2
n≥2堆石子,各堆分別含有a1、
a2⋯a
na_1、a_2\cdots a_n
a1、a2
⋯an
個石子。
遊戲的目的就是選取最後剩下的石子。遊戲規則如下:
遊戲人交替進行遊戲
當輪到每個遊戲人取子時,選擇這些石子中的一堆,並從所選的堆中取走至少乙個石子
(遊戲人也可以取走他所選擇的堆中的全部石子,於是留下乙個空堆)
當所有的堆都變成空堆時,遊戲結束。
最後取子(即能夠取走最後一堆中剩下的所有石子)的遊戲人,視為遊戲的勝利者。
這種遊戲稱為nim
\operatorname
nim遊戲。
對於這種遊戲,只有先手必勝和先手必敗兩種情況。
定理:nim
\operatorname
nim先手必勝,當且僅當a
1xora
2xora
3xor⋯
xoran
a_1\operatornamea_2\operatornamea_3\operatorname\cdots\operatornamea_n
a1xor
a2x
ora3
xor
⋯xor
an不等於000
證明:
NIM博弈證明
若a1x ora2 xora 3.xora n 0a 1 xor a 2 xor a 3 xor a n neq 0 a1 xor a2 x ora3 xora n 0則先手 r rr 贏 否則 先手 r rr 輸 1 定義令tem a1x ora2 xora 3.xora ntem a 1 xor...
關於nim博弈的證明。
nim博弈我們大家都很熟悉,那麼為什麼nim博弈中石子數異或起來和為0就是先手必敗,非0就是先手必勝呢,想必大家都有過這個疑問。很多人都知道這個結論,但是卻很少人知道證明過程。其實nim博弈的證明過程是一種對稱博弈。我們知道如果異或和是0,先手必敗。考慮異或和是0的意義,異或和是0代表著對於所有石頭...
博弈論 Nim博弈 反Nim博弈 SG函式
nim遊戲 hdu1846 若各堆石子異或和為不為零,則先手勝 後手當且僅當異或和為零時取勝 此題問要想先手取勝第一步的取法,考慮到上述引理,只需遍歷一遍石子找到異或和的最高位匹配的個數。int a 105 int main return0 view code hdu 1848 在上題的基礎上取法只...