這是乙個過於經典且過於常見的博弈論模型,入門博弈論的話,首先肯定是要知道這個的。
n im
nimni
m 遊戲的規則:有 n
nn 堆石子,第 i
ii 堆石子有 a
ia_i
ai 個,每次可以從某一堆中取走若干個,先後手輪流取,最後無石子可取的人負。
首先給出結論:將這 n
nn 堆石子的數量異或起來(即 a1x
ora2
xor.
..xo
rx
na_1~xor~a_2~xor ~...~xor x_n
a1xor
a2x
or..
.xor
xn),假如不為 0
00,那麼先手必勝,否則先手必敗。
由於這東西的證明需要用到二進位制,所以下面的證明都在二進位制意義下討論。
首先要知道兩個定義:
必勝態:雙方足夠聰明的情況下,在該狀態時擁有操作權者必勝
必敗態:雙方足夠聰明的情況下,在該狀態時擁有操作權者必敗
以及一些基礎知識:如果乙個狀態能轉移到任意乙個必敗態,那麼該狀態就是必勝態,如果不能,就是必敗態。
在 n im
nimni
m 遊戲中,異或和不為 0
00 就是必勝態,否則是必敗態。
先考慮必勝態怎麼必勝:
假設他們異或起來為 k(k
≠0
)k (k\neq 0)
k(k=
0),且 k
kk 的最高位為第 p
pp 位,那麼至少存在乙個 a
ia_i
ai,滿足 a
ia_i
ai 的第 p
pp 位是 1
11,那麼我們只需要讓 a
ia_i
ai 異或上 k
kk 即可,由於 a
ia_i
ai 的第 p
pp 位是 1
11,所以 a
ia_i
ai 異或 k
kk 肯定是減少了。
異或完後,所有石子的異或和就變成了 0
00,也就是必敗態,由於能轉移到必敗態,所以一開始的狀態為必勝態。
再考慮必敗態為什麼必敗:
其實這個就簡單很多了……由於此時異或和為 0
00,不管怎麼拿,拿完之後肯定不為 0
00,也就是說,這個狀態只能轉移到必勝態,那麼這個狀態就是必敗態了。
比如現在有 1,3
,2,6
1,3,2,6
1,3,2,
6 四堆石子,在二進位制下就是 001
,011
,010
,110
001,011,010,110
001,01
1,01
0,11
0,他們的異或和為 110
11011
0,也就是 666。
此時先手操作,k
kk 即 110
11011
0 的最高位是第三位,找到第三位是 1
11 的數:6
66,讓它異或上 6
66,得到的就是 0
00,那麼四堆石子數變成 1,3
,2,0
1,3,2,0
1,3,2,
0,此時他們的異或和為 0
00,滿足要求,van美。
(來自師兄的一場模擬賽)
題目大意:有一棵 n題解:nn 個節點的樹,1
11 號點為根節點,其它點上分別放有若干個石子,兩個人輪流操作,每次可以將某個節點上的若干個石子移動到這個節點的父親上面,無法操作者負,問先手是否必勝。
觀察發現,假如設根節點的深度為 1
11,那麼深度為奇數的節點上的石子其實不影響答案,因為如果移動這上面的石子,那麼另乙個人再次移動這堆石子即可,這堆石子就永遠在深度為奇數的節點上,若干次移動後就到了根節點,然而他們的移動並不會更改先後手順序。
所以我們只需要考慮深度為偶數的節點上的石子即可,如果移動深度為偶數的節點上的石子,那麼移動完之後這堆石子肯定會在奇數節點上,也就是說,這堆石子沒用了。這等價於我們取走了這些石子。
誒,是不是開始很眼熟了?沒錯,這就是乙個 nim
nimni
m 遊戲,不過不是用到所有的石子,只用到深度為偶數的節點上的石子罷了。
emm,簡單吧,這就講完啦qwq。
nim遊戲簡介
定義p position和n position,其中p代表previous,n代表next。直觀的說,上一次move的人有必勝策略的局面是p position,也就是 後手可保證必勝 或者 先手必敗 現在輪到move的人有必勝策略的局面是n position,也就是 先手可保證必勝 更嚴謹的定義是 ...
博弈 Nim遊戲
nim遊戲是博弈論中最經典的模型,它又有著十分簡單的規則和無比優美的結論。nim遊戲是組合遊戲 combinatorial games 的一種,準確來說,屬於 impartial combinatorial games 以下簡稱icg 滿足以下條件的遊戲是icg 可能不太嚴謹 1 有兩名選手 2 兩...
Nim遊戲模板
鏈結 甲,乙兩個人玩nim取石子遊戲。nim遊戲的規則是這樣的 地上有n堆石子 每堆石子數量小於10000 每人每次可從任意一堆石子裡取出任意多枚石子扔掉,可以取完,不能不取。每次只能從一堆裡取。最後沒石子可取的人就輸了。假如甲是先手,且告訴你這n堆石子的數量,他想知道是否存在先手必勝的策略。模板題...