尼姆 Nim 博弈策略的完整數學證明

2021-09-25 15:27:40 字數 2326 閱讀 2254

首先來解釋一下,為什麼要寫這篇部落格。其實,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堆石子中的一堆,取一定數量的石子 最少取乙個 ...