Nim遊戲詳解

2021-10-03 19:10:11 字數 2288 閱讀 5206

這是乙個過於經典且過於常見的博弈論模型,入門博弈論的話,首先肯定是要知道這個的。

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

a1​xor

a2​x

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堆石子的數量,他想知道是否存在先手必勝的策略。模板題...