幾個經典的博弈

2021-08-25 20:15:14 字數 2919 閱讀 7762

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

顯然,如果 n=m+1 ,那麼由於一次最多只能取 m 個,所以,無論先取者拿走多少個,後取者都能夠一次拿走剩餘的物品,後者取勝。因此我們發現了如何取勝的法則:如果 n= ( m+1 ) r+s ,( r 為任意自然數, s ≤ m), 那麼先取者要拿走 s 個物品,如果後取者拿走 k (≤ m) 個,那麼先取者再拿走 m+1-k 個,結果剩下( m+1 )( r-1 )個,以後保持這樣的取法,那麼先取者肯定獲勝。總之,要保持給對手留下( m+1 )的倍數,就能最後獲勝。

這個遊戲還可以有一種變相的玩法:兩個人輪流報數,每次至少報乙個,最多報十個,誰能報到 100 者勝。

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

這種情況下是頗為複雜的。我們用( ak , bk )( ak ≤ bk ,k=0 , 1 , 2 , ...,n) 表示兩堆物品的數量並稱其為局勢,如果甲面對( 0 , 0 ),那麼甲已經輸了,這種局勢我們稱為奇異局勢。前幾個奇異局勢是:( 0 , 0 )、( 1 , 2 )、( 3 , 5 )、( 4 , 7 )、( 6 , 10 )、( 8 , 13 )、( 9 , 15 )、( 11 , 18 )、( 12 , 20 )。

可以看出 ,a0=b0=0,ak 是未在前面出現過的最小自然數 , 而 bk= ak + k ,奇異局勢有

如下三條性質:

1 。任何自然數都包含在乙個且僅有乙個奇異局勢中。

由於 ak 是未在前面出現過的最小自然數,所以有 ak > ak-1 ,而 bk= ak + k > ak-1 + k-1 = bk-1 > ak-1 。所以性質 1 。成立。

2 。任意操作都可將奇異局勢變為非奇異局勢。

事實上,若只改變奇異局勢( ak , bk )的某乙個分量,那麼另乙個分量不可能在其他奇異局勢中,所以必然是非奇異局勢。如果使( ak , bk )的兩個分量同時減少,則由於其差不變,且不可能是其他奇異局勢的差,因此也是非奇異局勢。

3 。採用適當的方法,可以將非奇異局勢變為奇異局勢。

假設面對的局勢是( a,b ),若 b = a ,則同時從兩堆中取走 a 個物體,就變為了奇異局勢( 0 , 0 );如果 a = ak , b > bk ,那麼,取走 b - bk 個物體,即變為奇異局勢;如果 a = ak , b < bk , 則同時從兩堆中拿走 ak - ab - ak 個物體 , 變為奇異局勢( ab - ak , ab - ak+ b - ak );如果 a > ak , b= ak + k, 則從第一堆中拿走多餘的數量 a - ak 即可;如果 a < ak , b= ak + k, 分兩種情況,第一種, a=aj ( j < k ) , 從第二堆裡面拿走 b - bj 即可;第二種, a=bj ( j < k ) , 從第二堆裡面拿走 b - aj 即可。

從如上性質可知,兩個人如果都採用正確操作,那麼面對非奇異局勢,先拿者必勝;反之,則後拿者取勝。

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

ak =[k ( 1+ √ 5 ) /2] , bk= ak + k ( k=0 , 1 , 2 , ...,n 方括號表示取整函式 )

奇妙的是其中出現了**分割數( 1+ √ 5 ) /2 = 1 。 618..., 因此 , 由 ak , bk 組成的矩形近似為**矩形,由於 2/ ( 1+ √ 5 ) = (√ 5-1 ) /2 ,可以先求出 j=[a (√ 5-1 ) /2] ,若 a=[j ( 1+ √ 5 ) /2] ,那麼 a = aj , bj = aj + j ,若不等於,那麼 a = aj+1 , bj+1 = aj+1+ j + 1 ,若都不是,那麼就不是奇異局勢。然後再按照上述法則進行,一定會遇到奇異局勢。

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

這種情況最有意思,它與二進位制有密切關係,我們用( a , b , c )表示某種局勢,首先( 0 , 0 , 0 )顯然是奇異局勢,無論誰面對奇異局勢,都必然失敗。第二種奇異局勢是( 0 , n , n ),只要與對手拿走一樣多的物品,最後都將導致( 0 , 0 , 0 )。仔細分析一下,( 1 , 2 , 3 )也是奇異局勢,無論對手如何拿,接下來都可以變為( 0 , n , n )的情形。

計算機演算法裡面有一種叫做按位模 2 加,也叫做異或的運算,我們用符號( + )表示這種運算。這種運算和一般加法不同的一點是 1+1=0 。先看( 1 , 2 , 3 )的按位模 2 加的結果:

1 = 二進位制 01

2 = 二進位制 10

3 = 二進位制 11 ( + )

———————

0 = 二進位制 00 (注意不進製)

對於奇異局勢( 0 , n , n )也一樣,結果也是 0 。

任何奇異局勢( a , b , c )都有 a ( + ) b ( + ) c =0 。

如果我們面對的是乙個非奇異局勢( a , b , c ),要如何變為奇異局勢呢?假設 a < b< c, 我們只要將 c 變為 a ( + ) b, 即可 , 因為有如下的運算結果 : a ( + ) b ( + ) (a ( + ) b)=(a ( + ) a) ( + ) (b ( + ) b)=0 ( + ) 0=0 。要將 c 變為 a ( + ) b ,只要從 c 中減去 c- ( a ( + ) b )即可。

例 1 。( 14 , 21 , 39 ), 14 ( + ) 21=27 , 39-27=12 ,所以從 39 中拿走 12 個物體即可達到奇異局勢( 14 , 21 , 27 )。

例 2 。( 55 , 81 , 121 ), 55 ( + ) 81=102 , 121-102=19 ,所以從 121 中拿走 19 個物品就形成了奇異局勢( 55 , 81 , 102 )。

幾個經典的博弈

一 巴什博奕 bash game 只有一堆 n個物品,兩個人輪流從這堆物品中取物,規定每次至少取乙個,最多取 m個。最後取光者得勝。顯然,如果 n m 1 那麼由於一次最多只能取 m個,所以,無論先取者拿走多少個,後取者都能夠一次拿走剩餘的物品,後者取勝。因此我們發現了如何取勝的法則 如果n m 1...

幾個經典的博弈問題

有一種很有意思的遊戲,就是有物體若干堆,可以是火柴棍或是圍棋子等等均可。兩個 人輪流從堆中取物體若干,規定最後取光物體者取勝。這是我國民間很古老的乙個遊戲 別看這遊戲極其簡單,卻蘊含著深刻的數學原理。下面我們來分析一下要如何才能夠 取勝。一 巴什博奕 bash game 只有一堆n個物品,兩個人輪流...

基礎經典博弈

1.巴什博弈 題目一般是兩人輪流每次在n個物品中拿取不超過m個且至少拿乙個,拿光者勝出。我們可以將n個物品寫成k m 1 b b 0 所以先手先拿掉b個物品,後手只能拿x個物品 1 x m 這時先手再拿m 1 x個物品,迴圈往復可以保證先手的人最後拿完物品,先手就必勝。當b 0時無論先手怎麼拿,後手...