今天我們來玩遊戲(博弈)

2022-09-07 23:42:32 字數 1459 閱讀 9474

鳴謝xym學長

其實前面的都是廢話

精髓都在最後的sg定理中了

很難理解?

那好,我們舉個栗子

nim遊戲:

其實學長的課件上有寫解法,

但是我覺得寫得太爛

還是自己說比較清楚

*複雜的情況我們考慮不過來,那就從簡單的開始

如果只有一堆,先手必勝(都拿走就好了)

*兩堆:

如果有兩堆中的石子數目相同,

那麼先手從任意一堆中拿走任意數目

後手只要在另一堆中模仿ta的操作,

先手必敗

觀察一下我們可以發現

如果石子的數目 ^ 和==0,先手必敗

!=0, 先手必勝

難道這是巧合嗎

當然不是!!!

實際上每堆石子的數目就是當前堆的sg值

(這個怎麼理解呢:如果我們從這一堆拿走石子,

我們可以拿1,2,3,4…a[i]個,

接下來的狀態就是a[i]-1,a[i]-2,a[i]-3…0,

a[i]是第乙個達不到的狀態,

卡sg的概念,那麼a[i]就是當前堆得sg啦)

我們回顧一下定理

那我們照葫蘆畫瓢,異或一下,

設答案為k

如果k==0那麼先手必敗

(極端考慮兩堆數目相同的石子)

如果k!=0先手必勝

原因:k!=0,那k二進位制表示一定有乙個最高位j是1

在所有石子中一定有一堆j位也是1(不然k中的1是怎麼來的。。。),設為第i堆

那先手把i堆的石子拿成a[i]^k,

這樣剩下的所有石子堆異或和就==0了,

這就相當於個對手留下了乙個必敗局面

此時先手必勝

在一般的博弈中

sg函式可以暴力求得,(卡住sg的定義)

暴力列舉後繼狀態,求mex

整個遊戲的sg就是求一下子遊戲的sg異或和即可

一般規定

sg==0,先手必敗

否則先手必勝

她玩遊戲好都不准我玩遊戲了 我們可以玩遊戲嗎?

她玩遊戲好都不准我玩遊戲了 boy was i wrong.男孩,我錯了。開發人員和使用者這兩個相互交織的核心群體的心智之戰仍然是一場更大得多的戰爭。蘋果的整個業務都建立在這兩個基礎上。似乎每隔一周,由於這種舉動,蘋果正在侵蝕與開發人員的關係。如果這種情況持續下去,在某個時候,它也必須改變方程式的另...

如何玩遊戲

1 註冊 略2 建立虛擬雲伺服器 跳轉到支付頁面。然後再執行一遍deploy上述配置。重置例項 完成例項 注意 1 不要同時幾個人使用同乙個ip。2 centos7 3 xshell連線ip 網路不好,多試幾次。4 使用python部署 5 安裝公升級pip pip install upgrade ...

英語單詞玩遊戲

甲乙兩個人用乙個英語單詞玩遊戲。兩個人輪流進行,每個人每次從中刪掉任意乙個字母,如果剩餘的字母序列是嚴格單調遞增的 按字典序a b c z 則這個人勝利。兩個人都足夠聰明,甲先開始,問他能贏麼?public static void main string args else str arr new ...