專題 博弈論

2021-08-19 23:57:45 字數 2266 閱讀 2351

bash博弈:

在幾大主流博弈論中,bash(巴什)博弈應該算較為簡單的一種,題意大致描繪如下:

有一堆n個石子,a、b兩人每次從中取m個(1<=m<=k),總是由a先手,規定取走最後乙個石子的人為勝者(敗者),在給出石子總數(n)和每次可取的最大值(k)的情況下,判斷先手(a)的勝敗。

由題目可這樣思考:若要取最後乙個,那麼如果保證每次a、b兩人所取的石子總保持乙個數,那麼保持這個數的人便總能取到最後乙個石子。如要保持4個,a取1個,b取3個,那麼b便是保持取得個數為4的人,因此總能取到最後乙個。這個數就是(k+1)。為什麼是(k+1)呢?因為k+1是不論對手取多少個石子(1~k),我總能保持的乙個數。如果為(k+1),那麼對手取1個時,我便不能保持(k+2)這個數(最多取k個,總數最多為(k+1)),以此類推,保持的數每比(k+1)大一,便多乙個數不能保證被取到,因此這個數為(k+1)。

因此可以得出結論:如果石子總數n為(k+1)的倍數,則後手總是勝者,否則先手總是勝者。

詳細模板及**可參照: 這裡這裡~

fibonacci(斐波那契)博弈:

斐波那契博弈,,,em......看名字就很明顯了,和著名的斐波那契數有關,問題具體描述如下:

有一堆n個石子,a、b輪流取,最少可取1個,最多取上次對手所取數量的兩倍(第一次不可全部取完),a為先手,取走最後一顆石子的人為勝者(敗者),給出石子數量n,問最後誰為贏家。

仔細想想,可能也可以算是巴什博弈的一種,如果n是斐波那契數的話,後手勝利,否則先手勝利

例題即**請戳這裡:啦啦啦~~

nim博弈

有n堆各若干個物品,兩個人輪流從某一堆取任意多的物品,規定每次至少取乙個,多者不限,最後取光者得勝。

這種情況最有意思,它與二進位制有密切關係,我們用(

a,b,c)表示某種局勢,首先(0,0,0)顯然是奇異局勢,無論誰面對奇異局勢,都必然失敗。第二種奇異局勢是(0,n,n),只要與對手拿走一樣多的物品,最後都將導致(0,0,0)。仔細分析一下,(1,2,3)也是奇異局勢,無論自己如何拿,接下來對手都可以將其變為(0,n,n)的情形。

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

1 =二進位制01

2 =二進位制10

3 =二進位制11 (+)

———————

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

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

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

注意到異或運算的交換律和結合律,即a(+)a=0,:

a(+)b(+)(a(+)b)=(a(+)a)(+)(b(+)b)=0(+)0=0。

所以從乙個非奇異局勢向乙個奇異局勢轉換的方式可以是:

1)使 a = c(+)b

2)使 b = a(+)c

3)使 c = a(+)

例題即**看這裡哦:

叮咚~wythoof(威佐夫)博弈

有兩堆各若干個物品,兩個人輪流從某一堆或同時從兩堆中取同樣多的物品,規定每次至少取乙個,多者不限,最後取光者得勝。

這種情況下是頗為複雜的。我們用(

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。兩個人如果都採用正確操作,那麼面對非奇異局勢,先拿者必勝;反之,則後拿者取勝。

那麼任給乙個局勢(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,b = aj + j + 1,若都不是,那麼就不是奇異局勢。然後再按照上述法則進行,一定會遇到奇異局勢。

滴滴滴!

博弈論 專題總結

刷了差不多兩星期的博弈啊 其實還用了很多時間準備坑爹的會考 雖然不是特別熟悉 但是比之前看到博弈就orz好多了 把副隊給的題目刷完之後ak表示還不過癮 又去把wikioi vijos的博弈題目都刷了一遍 裡面好幾道重複的題目我就沒打了 看了下儲存的檔案 刷了19題 我看的 從 k倍動態減法遊戲 出發...

博弈論(取石子專題)

有一堆石子共有n個。a b兩個人輪流拿,a先拿。每次最少拿1顆,最多拿k顆,拿到最後1顆石子的人獲勝。假設a b都非常聰明,拿石子的過程中不會出現失誤。給出n和k,問最後誰能贏得比賽。必勝策略 令 n k 1 r s a第一次取s個,讓b面對k 1倍數的局面,如果b取m個則a取k 1 m個。incl...

博弈論 Nim博弈

1.nim博弈的起源很早,至於歷史我們就不再說了,直接說它的使用場景。1 依舊是兩個人博弈,但是物品時n堆,每一堆有ai個。2 每個人可以挑選一堆取走若干個,但是不能不取。3 最先取完所有物品的人獲勝。4 結論 所以堆的物品的數量異或起來是0,先手必敗。2.乙個nim博弈的例項 nim博弈。乍一看這...