首先來解釋一下,為什麼要寫這篇部落格。其實,csdn上已經能夠搜尋到很多nim博弈的論述。大部分文章關注點都只是定義和方法,偶有附帶**的。下面這個鏈結包含了關鍵數學環節,但是整篇的論述邏輯層次並不清晰,給出了過多的定理。
本文的目的則是給出簡潔有效的nim博弈的結論證明。
1.概述
1.1 尼姆博弈定義
有n堆物品,每堆數量已知。甲乙雙方輪流取物,甲先取。每次只能從其中某一堆取物件,至少取乙個,取走最後乙個物品的是勝利者。請問甲或者乙是否存在必勝策略。
1.2 基本結論
設n堆物品的數量分別為a
1, a
2,…a
n,定義 sg ()=a
1 xor a
2 xor … xor a
n,其中xor 表示二進位制按位異或。如果sg=0,則定義當前狀態為n-position,反之,如果sg≠0,則定義當前狀態為p-position。特別的,當a
i全為0,按照定義為n態,此時取物品的玩家沒有物品可取,則認為最後乙個物品被上乙個玩家取走,認定為失敗。
結論:若初始狀態為n-position,則乙必勝;若初始狀態為p-position,則甲必勝。
下面證明該結論。
2. 數學證明
若對所有的i∈,有a
i≤1,則稱目標堆集為孤堆狀態。首先對於非孤堆態,我們證明下面的2.1和2.2成立。
2.1 單次操作, p-position->n-position 方法必然存在
把sg表示成二進位制,記它的二進位制數的最高位為第p位,則必然存在乙個a
t,它二進位制的第p位也是1。(否則,若所有的a
i的第p位都是0,則sg的第p位也必為0)。
令x =a
t xor sg, 則x的p 位是0,且x的高位與a
t 相同,所以有x t
用x取代a
t,則這步操作後的sg, sg
new=a
1 xor a
2 xor … xor a
t xor sg xor a
t+1 xor … xor a
n =sg xor sg=0.
即對於p-position,可以通過一次操作使得整體狀態從p-position變成n-position。
2.2 單次操作, n-position必然變為p-position
用反證法,假如某次n-position操作完後依然是n-position,即sg=sg
new=0。設被操作的是a
k,操作的結果是a
』k.即
sg=a
1 xor a
2 xor … xor a
k xor a
t+1 xor … xor a
n=0 sg
new=a
1 xor a
2 xor … xor a
』k xor a
k+1 xor … xor a
n=0於是0=sg xor sg
new=a
k xor a 』k
根據異或運算特點,當且僅當a
k=a』k時,上式成立。
2.3 孤堆狀態
對於孤堆狀態,每次會取走一整堆。
當初始堆數是奇數時,甲勝,當初始堆數是偶數時,乙勝。
顯然,當堆數是奇數時,sg≠0,當堆數是偶數時,sg=0.
這說明對於孤堆狀態,1.2中結論成立。
2.4 完整策略
a.對於非孤堆狀態,若初始狀態為p-position,根據2.1,甲可以通過一次操作使狀態變為n-position;根據2.2,之後乙的操作必然使目標堆集狀態進入p-position.這樣經過甲乙各一次的操作,目標堆集依然是p-position,且總體數量減少。則經過有限次的甲乙均等次數操作,目標堆集數量不斷減少,最後必然出現兩種情形之一:一種情形是,目標堆集只有一堆為非空堆,這顯然是p-position;另外一種情形是,目標堆集為孤堆狀態,且保持p-position。第一種情形,甲一次取完即可勝出;第二種情形,由2.3,甲必勝。
b.對於非孤堆情形,若初始狀態為n-position,根據2.2,甲的第一次操作會使得目標堆集合進入p-position.根據2.1,乙可以通過一次操作使得目標集再次n-position.則經過有限次的甲乙均等次數操作,目標堆集數量不斷減少,最後必然以n-position進入孤堆狀態。根據2.3,乙必勝。
結合2.3和2.4,1.2中的結論得證。
博弈 尼姆博弈
今天我們來聊一聊另一種博弈 尼姆博弈,這一種博弈可以說是巴什博弈的一種變體,巴什博弈中 石子 的堆數為1堆,而在利姆博弈中 石子 的堆數為n堆,還有在尼姆博弈中取石子的規則也發生了變化,前一種博弈中取石子的數量限定在 1,l 而後一種取石子的數量可以為任意數 但不能不取,而且還不能超過這一堆石子的總...
博弈論(尼姆博弈)
尼姆博弈指的是這樣乙個博弈遊戲 有任意堆物品,每堆物品的個數是任意的,雙方輪流從中取物品,每一次只能從一堆物品中取部分或全部物品,最少取一件,取到最後一件物品的人獲勝。結論就是 把每堆物品數全部異或起來,如果得到的值為0,那麼先手必敗,否則先手必勝。這樣理解 先手必敗態為面臨的所有堆都為0,而此時的...
南陽 oj尼姆博弈
時間限制 3000 ms 記憶體限制 65535 kb 難度 5 描述 小王喜歡與同事玩一些小遊戲,今天他們選擇了玩取石子。遊戲規則如下 共有n堆石子,已知每堆中石子的數量,並且規定好每堆石子最多可以取的石子數 最少取1顆 兩個人輪流取子,每次只能選擇n堆石子中的一堆,取一定數量的石子 最少取乙個 ...