趣題:構造遊戲初始狀態使得後行者必勝
考慮這樣一個雙人對弈遊戲:在一個8x8的方陣裡分別填上1-64這64個正整數。然後A和B兩個人輪流在格子中取數,A先取,B後取。取數的規則很簡單:取過的數不能夠再取,並且除了第一次以外,以後每次取的數必須與某個已經取過的格子相鄰。所有數都取完後,所取數之和最大的人獲勝。
很顯然,這個遊戲對於A更有利一些。我們可以輕易構造一個初始狀態,使得先取的人必勝。考慮A的這樣一個策略:總是取能取的數中最大的一個。如果每次A都可以取走整個棋盤中最大的那個數,那A就贏定了(因為每次B接下來取的數都比A小)。這樣的初始狀態是很容易構造出來的,比如我們只需要從左往右從上至下依次填入這64個數就可以了,這可以保證如果從n到64的所有數都取走了,則n-1也可以被取走。
現在的問題是,能否構造一個初始狀態,使得後取的人有必勝策略?提示,解決這道題需要有超強的“整人”能力。你得想出足夠多的壞點子才能找到弄死先行者的方法。你的心腸壞到足以解決這個問題嗎?
解決問題的關鍵在於,我們要給A埋下“陷阱”。考慮這樣一種區域性構造:奇數個大數彼此相連,這些大數週圍一圈全是小數。上圖就是這樣一個陷阱,鑽石代表大數,其餘黃色的格子都是小數。只要A踩進了某個黃色格子,他就中計了:B和A開始輪流取大數,但大數只有奇數個,因此B獲得的大數比A多一個。為了讓事情變得更簡單,我們只考慮最簡單的一種陷阱:只有一個大數,周圍的鄰格都是小數。我們還有幾個難點:萬一A一開始就把陷阱內的鑽石取走咋辦,又如何避免自己不會掉進陷阱,還有我們必須保證B從這些陷阱裡賺到的足以彌補在其它地方虧的。要想有足夠多的陷阱對A起作用,我們得布上至少三個陷阱,這樣A可以在最能賺的陷阱裡開局,但無法避免落入另外兩個陷阱。為了保證自己不會掉進陷阱,我們可以把棋盤的其餘部分劃分為多米諾骨牌(一個個1x2的小長方形),這樣的話不管A取哪一個格子,B總可以取對應的另一個格子,不會踩到陷阱。於是我們想到了下面的這個構造:
我們在四個陷阱裡分別填上1-2-3-61,4-5-6-62,7-8-9-63,10-11-12-64這四組數,每個多米諾骨牌裡填上兩個相鄰的數。這樣的話,A的最好策略就是從第一個陷阱裡開始取數。他能從第一個陷阱裡賺到(61+2)-(1+3)=59分,但他在其它陷阱裡將分別丟掉(62+4)-(5+6)=55分、(63+7)-(8+9)=53分、(64+10)-(11+12)=51分。而多米諾骨牌一共只有24個,他最多隻能撿24分回來,這是遠遠不夠的。因此,先取者必輸無疑。
參考資料:http://www.brand.site.co.il/riddles/200802q.html
相關文章
- 一款不打擦邊球的後宮遊戲,如何通過製造“反差”取勝?遊戲
- XRP在大幅下跌之後反彈,使得加密市場重新回到了溫和狀態加密
- 製作遊戲的遊戲:創作樂趣的樂趣遊戲
- 萬元大禮不靠打,必勝客宅急送xWUCG必勝封神賽,看就有戲!
- 設計模式(二十)——備忘錄模式(遊戲角色狀態恢復問題)設計模式遊戲
- 遊戲趣史:遊戲引擎的發展史遊戲引擎
- 雜湊競猜遊戲系統構造原理遊戲
- 創造趣時光 益玩遊戲攜《商道高手》等多款精品手遊亮相ChinaJoy遊戲
- CF 構造題
- 後端的狀態碼後端
- 網路遊戲同步方式(幀同步和狀態同步)遊戲
- 千億經濟激發新業態 盛趣模式加速雲遊戲生態建設模式遊戲
- 系統設計架構:有狀態與無狀態架構
- 恢復oracle的scott使用者初始狀態操作Oracle
- 電子遊戲、規則和結束狀態(end state)遊戲
- 拼圖解謎遊戲:步行者The Pedestrian mac版圖解遊戲Mac
- 遊戲不應該只有樂趣遊戲
- 00後遊戲興趣報告:同人文化的濫觴和流行遊戲
- HTTP狀態碼 — 混圈子必備”語言“HTTP
- 遊戲,一個有樂趣的、解決問題的過程遊戲
- win10登錄檔恢復初始狀態的方法Win10
- 釋放創造力:雲遊戲背後的產業革命遊戲產業
- 遊戲中的無聲交流:營造沉浸式體驗的必備利器遊戲
- Xcode 檔案後狀態標識XCode
- 請求更改狀態介面後,執行 sql 查出來狀態不對SQL
- 構造做題筆記筆記
- Spring原始碼系列 —— 構造和初始化上下文Spring原始碼
- 遊戲趣史:開羅遊戲與它的畫素帝國遊戲
- React專題:可變狀態React
- 架構設計(五):有狀態服務和無狀態服務架構
- Next App Router 模式下,如何同步服務端 Redux 初始狀態?APP模式服務端Redux
- 《幽靈行者》:近期最酷炫的賽博朋克遊戲之一遊戲
- 遊戲心理學研究:喚醒狀態與遊戲中的冒險及挑戰性活動遊戲
- 2020後浪生存圖鑑:00後對遊戲最感興趣,近7成在下沉市場 遊戲
- Effective Java - 靜態方法與構造器Java
- 玩家——受傷後的保護狀態
- 盛趣遊戲原生雲遊戲《熱血傳奇》兩大新玩法曝光遊戲
- 盛趣遊戲譚雁峰:遊戲正與科技產業共生共促遊戲產業
- 【架構設計】無狀態狀態機在程式碼中的實踐架構