PKU1067 取石子游戲

其實就是:

威佐夫博弈(Wythoff Game):有兩堆各若干個物品,兩個人輪流從某一堆或同時從兩堆中取同樣多的物品,規定每次至少取一個,多者不限,最後取光者得勝。

如果甲面對(0,0),那麼甲已經輸了,這種局勢我們稱爲奇異局勢。前幾個奇異局勢是:(0,0)、(1,2)、(3,5)、(4,7)、(6,10).可以看出,a0=b0=0,ak是未在前面出現過的最小自然數,而 bk=ak+k.

    那麼任給一個局勢(a,b),怎樣判斷它是不是奇異局勢呢?我們有如下公式:

    a[k] =trunc(k(1+√5)/2),b[k]= a[k] + k  (k=0,1,2,...,n )

所以只要用 b[k]-a[k] 求出k, 再驗證k是否滿足 a[k] =trunc(k(1+√5)/2)就可以了

 

另外

巴什博弈(Bash Game):只有一堆n個物品,兩個人輪流從這堆物品中取物,規定每次至少取一個,最多取m個。最後取光者得勝。

很容易想到當n%(m+1)<>0時,先取必勝,第一次先拿走n%(m+1),以後每個回合到保持兩人拿走的物品總和爲m+1即可。

 

尼姆博弈(Nimm Game):有三堆各若干個物品,兩個人輪流從某一堆取任意多的物品,規定每次至少取一個,多者不限,最後取光者得勝。

對於任何奇異局勢(a,b,c),都有a xor b xor c=0.

非奇異局勢(a,b,c)(a<b<c)轉換爲奇異局勢,只需將c變爲a xor b,即從c中減去 c-(a xor b)即可。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章