博弈論入門

2022-07-06 16:00:11 字數 2083 閱讀 4413

目錄0x00-前(che)言(dan)

不務正業系列

貌似是因為要交數學作業

博弈論在oi技能樹上的標籤是 \(\color\) 的,但是一些基礎還是可能在初賽的問題求解考到的,(雖然主要考組合數學),但是早學晚學都得學

其實博弈論的精髓就在於乙個轉移迭代:

如果這種情況能有必勝策略,那麼它一定能轉移到乙個有必勝策略的情況。這就是乙個遞迴迭代的問題,又㕛叒叕是dp。

0x01-bash game

bash game 應該是最簡單的一種博弈論了,應該小學生都會的吧。

內容如下:

有一堆石子,石子數量為 \(n\) 。一次可以取 \(x\) 個石子, 其中 \(a\le x \le b\) ,不可以不取,誰取到最後一顆就誰贏,給出 \(a,b,n\) ,求是否存在先手必勝的策略。

其實這個問題很簡單,只要保證 \(n \mod \left( a+b \right) = 0\) 就沒有,否則有,下面給出策略:

如果 \(n \mod \left( a+b \right) = 0\) 那麼就後手取有必勝策略,我們發現,只要第乙個人取 \(x\) 顆,我們就取 \(a+b-x\) 顆就可以了,這樣一輪下來我們就有 \(a+b\) 顆石子被取走,那麼就可以取到最後一顆了。並且對方無論怎麼取你都可以讓總數為 \(a+b\) 其他的數字就不可以了。

**略。

0x02 nim gmae

這是乙個非常經典的博弈論了,不過因為我太菜了所以我就只會過模板。

在洛谷上檢視

洛谷上的難度:\(\color\)

問題是這樣的:

有 \(n\) 堆石子,每堆的數量分別為 \(a_i \left( 1\le i\le n\right)\) ,每個人從同一堆石子裡面取任意數目的石子,取到最後乙個的人贏,請問是否存在先手必勝策略。

結論如下:當 \(a_1\oplus a_2\oplus a_3\dots a_n \not= 0\) 的時候,先手存在必勝策略。

不難得出必勝策略如下:

首先在去一些石子,使 \(a_1\oplus a_2\oplus a_3\dots a_n = 0\) ,然後反覆進行就可以了,最後當 \(a_1= a_2=a_3=\dots =a_n = 0\) 的時候就勝利了,因為最後的結果的異或起來也是 \(0\) 。

0x03 wythoff game

這個應該是三個之中最難的了。

問題如下:

有兩堆石子,可以在一堆石子中取任意個數的石子,也可以同時在兩堆石子取相同個數的棋子,但不能不取,兩對石子分別有 \(a\) 個和 \(b\) 個,問先手是否有必勝策略。

感覺找不出規律,俗話說得好:暴力出奇蹟,打錶出省一,那麼我們手動模擬打張表吧。

這裡令 \(a(因為 \(a=b\) 肯定是先手必勝)

然後我們就會發現基本上的結果是先手必勝,但是有少數例外:

\(a\)

\(b\)

\(0\)

\(0\)

\(1\)

\(2\)

\(3\)

\(5\)

\(4\)

\(7\)

\(6\)

\(10\)

\(8\)

\(13\)

\(9\)

\(15\)

\(11\)

\(18\)

我們把這些結果稱為奇異局勢,通過打表我們發現乙個神奇的結論:

\(\lfloor 1.618a \rfloor=b\) 而 \(1.618\) 其實就是 **分割比 \(+1\) 就是 \(1+\dfrac-1}\) ,而向下取整剛好可以使用我們c++的強制轉型(int)

而wythoff game的精髓以及射你之處也就在這裡了。

0x04 後記

當然,博弈論和其他演算法一樣,只有下限沒有上線,像我這種蒟蒻怎麼講的動那些藍紫黑博弈論呢? 所以遇到博弈論的時候要記住博弈論必勝策略轉移的精髓:如果這種情況能有必勝策略,那麼它一定能轉移到乙個有必勝策略的情況。

最後遇到不會的題目就可以 暴力出奇蹟,打錶出省一 來得到一定的分數。

博弈論入門

博弈論 是二人或多人在平等的對局中各自利用對方的策略變換自己的對抗策略,達到取勝目標的理論。博弈論是研究互動決策的理論。博弈可以分析自己與對手的利弊關係,從而確立自己在博弈中的優勢,因此有不少博弈理論,可以幫助對弈者分析局勢,從而採取相應策略,最終達到取勝的目的。一.bash博弈 問題 只有一堆n個...

博弈論入門

參考 三個簡單的博弈論問題 博弈 1066 bash遊戲 原題傳送 有一堆石子共有n個。a b兩個人輪流拿,a先拿。每次最少拿1顆,最多拿k顆,拿到最後1顆石子的人獲勝。假設a b都非常聰明,拿石子的過程中不會出現失誤。給出n和k,問最後誰能贏得比賽。例如n 3,k 2。無論a如何拿,b都可以拿到最...

博弈論入門

什麼是博弈 通俗地講,博弈就是指遊戲中的一種選擇策略的研究。博弈的英文為 game 我們一般將它翻譯成 遊戲 而在英語中,game 的意義不同於漢語中的遊戲,它是人們遵循一定規則的活動,進行活動的人的目的是讓自己 贏 我們在和對手競賽或遊戲的時候怎樣使自己贏呢?這不但要考慮自己的策略,還要考慮其他人...