當前位置: 首頁 > 攻略教程 > 圖文攻略 > 玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

時間:2023-06-20 09:59:00 編輯:易網(wǎng)VIP游戲門戶 閱讀:21

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

有時,小編回憶起童年和青春,眼前總是浮現(xiàn)出一片碧藍碧藍的天空和嫩得出水的草地,以及以前在那上面和小伙伴們度過的愉快的時光……

當然,你們別想錯了

我說的藍天和草地是指這個

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

為了防止被打小編選擇提前爆頭蹲防

WindowsXP確實承載很多的記憶,而且XP這個系統(tǒng)也是真的經(jīng)用。WindowsXP于2001年8月24日正式發(fā)布,微軟在2014 年 4 月 8 日才停止了對 Windows XP 桌面版系統(tǒng)的支持服務,一直到這周二,2019 年 4 月 9 號,運行在嵌入式設備上的最后的一批WindowsXP才失去微軟的官方支持。XP們終于正式對我們saygoodbye了。[1]

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

經(jīng)典的掃雷游戲

提起 XP,不得不說操作系統(tǒng)自帶的諸如掃雷,紙牌這一類的經(jīng)典游戲真的經(jīng)典,好玩又殺時間。如果可以統(tǒng)計全人類花在這上面的時間,估計肯定是一個天文數(shù)字。。。不過盡管掃雷大家玩的時間很長,玩的次數(shù)也很多,但是我猜99%的玩家肯定沒思考過,自己玩掃雷為啥那么容易就死了。。。

對比一下別人家的孩子玩掃雷的速度

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

圖片經(jīng)過加速。如果你想看真正目前世界上掃雷最快的記錄的話,可以去[2]圍觀

再看看自己玩掃雷的樣子…

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

差不多就是這種水平,剛點到掃雷圖標雷就已經(jīng)炸了

雖然XP已經(jīng)離我們而去,但是萬幸的是Win10系統(tǒng)還能夠在商店中直接搜索「minesweeper」下載官方重置了的掃雷游戲,重新體會以前的經(jīng)典。

其實吧,掃雷這個游戲很多科學家也愛玩。不過一般人玩掃雷如果死得快,就不斷重開重開重開直到碰到一個好的開局(然后又快速地死掉)??茖W家就不一樣,如果他們玩掃雷死得快,他們不會重開,他們會直接證明「這個游戲通關(guān)概率為 0」。

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

掃雷畢竟已經(jīng)有這么長的歷史了,分析掃雷游戲求解概率的論文都有一大堆。作為一個熟練點擊掃雷重開鍵的手殘掃雷玩家,今天我就來和大家系統(tǒng)地聊一聊掃雷的背后的故事。

掃雷秘籍

Minesweeping cheat sheet

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

天下武功,無堅不摧,唯快不破!

從數(shù)學上來看,掃雷就相當于一個不斷給你已知條件不斷求解的過程,就像一個不斷增加條件的應用題。你可以通過左鍵點開確定不是雷的塊,右鍵標記你認為是雷的區(qū)域。如果你點開的這一塊不是雷,那么它會告訴你這塊區(qū)域周圍八格內(nèi)有幾顆雷。只要你點得足夠快,雷就追不上你。

通過很簡單的反證法,我們可以推出來很大一部分雷所在的位置。[3]

角落上的情形

所謂反證法,就是反過來想這個問題。如果存在這么一個向內(nèi)凹的角,內(nèi)部的都是空白,但是角落上是一個1,那么這個角上一定會有一顆雷。因為如果這個地方再不是雷的話,那中間的1所指的雷就只能去流浪了。。。同理,一條邊上如果有3的話,那和3挨著的這三個一定是雷。畢竟地雷兄弟們也不能擠一擠挪到一個格子上去。

位于邊界時候的情形

除了這個反證法以外,在掃雷里還有很多固定的「套路」。學會這個套路,保證你掃雷功力大增,殺進小區(qū)掃雷五百強。

聽起來好像很厲害的樣子

在掃雷的時候其實經(jīng)常會遇到一些固定的數(shù)字,比如三個連續(xù)的數(shù)字為 121,此時想都不用想,就可以直接在 121 兩個 1 的正對方向標上雷?;蛘咚膫€連續(xù)的數(shù)字1221,此時兩個 2 的正對方向上也一定是雷。

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

121情形下,由于左側(cè)1的限制,在黃色區(qū)域內(nèi)只能有一格雷,但是中間的2至少要求2格雷,所以粉色的那顆一定是雷。同理證明另外一側(cè)

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

1221情形下,和上面證明過程相同,由于1的限制導致在黃色區(qū)域內(nèi)只能有1格雷,所以另一個2正對的方格一定是雷。

「小編小編,我有個問題,那121221呢?按照秘籍填雷的話中間那個1附近有兩顆雷誒?」

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

似乎有問題的秘籍?

「這種情況是不可能的!左邊數(shù)起三個1已經(jīng)覆蓋了上面的所有未知空格,所以地雷數(shù)至多只有3個。但下方顯示地雷數(shù)為1+2+2+1+2+1,在只有中間5個格子重復計數(shù)的情況下都到了7,大于3的2倍。所以這種圖形是不可能存在的!」

咳咳,把思路收回來,如上所述,掃雷確實是有一些套路的。每日熟讀此掃雷秘籍,假以時日,掃雷技藝必將大成。

掃雷還是運氣活

Lucky or not,it’s a question

玩掃雷,你必須要接受,這是一款拼人品的游戲。

雖然人生已經(jīng)如此地艱難,但我還是要無情地拆穿這一點。想必你此時已經(jīng)熟練掌握了掃雷的套路,不過在有些時候你還是要面對猜雷這種事情,而且一招不慎,滿盤皆輸。。。

猜猜黃色部分的雷應該是怎么分布的?

圖中黃色部分就是典型的需要猜的掃雷難題。根據(jù)角落里面的數(shù)字,我們都只能知道 1×2 的黃色部分里面一定只有一個雷,不過我們并不知道哪個才是雷。如果沒有其它信息的話,我們辛辛苦苦大半個棋盤,最后通過這個地雷陣的概率還是只有1/8。

這種簡單的判斷還好,有些時候還會遇到一些藏得更加隱晦的猜的時候。

掃雷判斷題

假設在我們的掃雷過程中遇到了這么一個圖案,確實是一件欲哭無淚的事情。不知道怎么哭的可以先把眼淚準備好,小編馬上就告訴你們?yōu)樯兑蕖?。。從左邊開始,假設第一個空位有雷,那么第二個空位沒有雷,因為空位中間1的存在從而第三個空位有雷,依次類推。但是如果是第一個空位沒有雷,而第二個空位有雷,我們也說得通。都要踩地雷了,還整個這么復雜的難題,至于么。。。

別急,后面還有更加復雜的。這里的x和之后的*號上是否有雷的情況一直相同,所以這個地雷陣就像一根傳遞信號的導線一樣。在掃雷的地圖上,我們不僅僅能夠做出這種簡單的傳遞信號的導線,其實還能夠?qū)崿F(xiàn)所有的電子電路中的邏輯門的操作。[4,5]

非門電路

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

或門電路

這是兩個「簡單」的邏輯門,分別實現(xiàn)了將信號翻轉(zhuǎn)的非門和將兩路信號做或操作的或門。在另一個也很著名的沙盒游戲——《我的世界(Minecraft)》里面,玩家也可以通過游戲中的材料,紅石(其實在此之前的 Windows 10 操作系統(tǒng)的每一年的更新代號就是用紅石來命名),實現(xiàn)各種各樣的復雜邏輯操作,更有玩家利用紅石在Minecraft里制造出了真正能運行的計算機。。。

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

紅石計算機,具有完整的寄存器,加法器等部件 [6]

算了,我已經(jīng)不敢想象掃雷會變成什么樣了。。。

判斷有沒有解都是一件很難的事情

Find solution

回到文章最開始,我們?nèi)巳テ平庖粋€掃雷問題的話,很容易就會死掉了,那把這個問題交給計算機來做會怎么樣?然而很遺憾的是,一般情況下,計算機目前對掃雷這個問題還是無能為力。。。

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

難過

稍微值得慶幸的是,在我們平時玩的比較小的棋盤下,計算機還可以通過搜索得到答案。

為了了解計算機處理問題難度的幾個級別,有必要先知道一個概念——多項式時間。對于同一個算法,根據(jù)處理問題大小的不同,計算機一般來說需要不同的時間進行計算。用最直觀的例子來說,小明要去洗衣服,他洗 1 件衣服的時間為 2 分鐘,洗 5 件衣服的時間為 10 分鐘,洗 10 件衣服的時間為 20 分鐘,處理問題的時間隨問題規(guī)模的變化為線性關(guān)系,一次多項式?,F(xiàn)在我們假設小明還是要洗衣服,只不過現(xiàn)在的衣服比較特殊,他洗1件這種衣服的時間為2分鐘,但洗5件的時間變?yōu)?2分鐘,洗10件的時間變?yōu)?024分鐘,這個時候就是指數(shù)關(guān)系的,而不再是多項式了。評價一個算法,隨著問題規(guī)模的增大,計算時間怎么增長是一個十分重要的指標。

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

在計算機里面,對于多項式級別的時間,我們還是認為很快的。如果把問題按照求解的難度來進行分類的話,P 是指能夠用多項式時間求解的問題,俗話說就是算起來很快的問題。NP 是指算起來不一定快,但是任何答案我們都可以檢查起來很快的問題。NP完全問題,是比所有NP問題都要難的NP問題。雖然人們有個美好的想法,總覺得驗算起來很快的應該可以找到辦法讓他算起來很快,但目前還是個未知數(shù)。。。[7]

很不幸,求解一個掃雷游戲的解,正好是一個NP完全問題——在能夠輕松驗證結(jié)果是否正確的問題里面最難的那一類。這一類問題目前為止人們還沒有發(fā)現(xiàn)多項式時間的求解算法,通常只有指數(shù)級甚至階乘級的搜索算法來解決。

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

用來顯示液晶數(shù)字的邏輯電路。我們可以很方便地一個一個試,但是反過來卻很難,尤其是在這個邏輯電路非常龐大的時候

掃雷游戲?qū)儆谝粋€如此困難的問題,其原因就出在上一章提到的,可以把掃雷游戲看做一個個邏輯門進行運算的邏輯電路。給定一個邏輯電路,在已知輸出結(jié)果的情況下,能否確定每個輸入的值?這個問題被稱為SAT 問題,是世界上第一個被證明其為 NP 完全的問題。[8]這種問題驗證起來非常容易,你只需要把結(jié)果代入到邏輯電路中,馬上能知道是否符合要求,但倒過來想要計算符合結(jié)果的輸入就極端地麻煩。

求解掃雷游戲的結(jié)果,利用那些構(gòu)造的邏輯門,恰恰等價于求解SAT問題。[9]

掃雷還和滲透有關(guān)系

Precolation

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

液體,圖片來自 Giphy,Michael Shillingburg

其實我們在玩掃雷游戲的時候覺得很難,其實還有另外一個原因。這個原因和物理里面的滲透還有關(guān)系。

在上個世紀 60 年代,科學家們 [10] 發(fā)現(xiàn)在流體流過多孔的介質(zhì)的時候,介質(zhì)中的空洞總是會被堵塞,有時候就會影響流體流出。更為奇怪的是,當這些多孔的介質(zhì)的孔隙被隨機堵塞的比例逐漸增大而達到某一值時,一開始一直能夠流動的流體就突然被完全堵住。在孔洞被隨機堵住的概率發(fā)生變化時,液體流過的比率也會發(fā)生一個突變。

這種現(xiàn)象被稱為逾滲(precolation)。[11]

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

遇到這種情況,你該怎么下手

在掃雷里面,也存在類似逾滲的現(xiàn)象。當一盤游戲里面的地雷密度特別低的時候,我們差不多隨便點,都不會點到地雷,而是點到大片大片的空白,一下子就把問題解決了。但是當?shù)乩酌芏仍龈咭院螅谠龃蟮揭欢ǔ潭纫院?,即使我們理性地分析,從不瞎猜,也不可能把掃雷問題做對了。

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

針對不同的棋盤大小,有人計算了在不同地雷密度情況下獲勝的概率。三角形對應的曲線為初級8×8,正方形為15×13,菱形為高級,30×16。這里的能否求解實際上不包括第一次隨機點擊的時候踩中雷的概率。[12]

我們把流體通過多孔介質(zhì)逾滲的模型抽象出來的話,其實對應著點逾滲,也就是把整個介質(zhì)想象成一個網(wǎng)絡,流體在經(jīng)過每個網(wǎng)格時,有概率p的可能通過。如果不能流過的網(wǎng)格在網(wǎng)絡中連成了片,流體就不能流過了。

不嚴格地來說,求解掃雷問題其實和逾滲模型很類似,我們求解的過程其實也像推土機一樣,不斷地利用已有的知識將已知區(qū)域向外一層一層地推進。如果游戲中某處雷的密度越大,那么越有可能出現(xiàn)可解部分被雷分開的情況,地雷密度和逾滲參數(shù)起到了一樣的作用。如果被分隔到無法連接整個棋盤,那就無法繼續(xù)推理了。更為嚴格的證明可以參考ElchananMossel的論文。[13]

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

推土機,圖片來自網(wǎng)絡

隨著網(wǎng)格的不斷增大,這條勝率曲線中間部分也變得越來越陡峭,掃雷問題越來越向兩個極端發(fā)展:要不就根本解不出來,要不就是很容易地就能解出來。在高級模式下,地雷的密度其實已經(jīng)到了99/480=0.2,能夠解出來的概率已經(jīng)不到1/4,這還不算手抖了點錯了,開局不好重開之類的情況,真的不算是友好了。

結(jié) 論

Conclusion

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到

emoji 版本掃雷 [14]

相信看到這里的人

一定已經(jīng)躍躍欲試想要玩一下掃雷了

我相信你們

天下無難事,只要肯放棄

卸載也行

玩掃雷還有什么技巧?科學家的玩游戲方法你絕對想不到