資料結構學習(C++)——遞迴【3】(1) (轉)
迷宮
關於迷宮,有一個引人入勝的希臘神話,這也是為什麼現今每當人們提到這個問題,總是興致勃勃(對於年青人,估計是RPG玩多了),正如雖然九宮圖連小學生都能做出來,我們總是自豪的說那叫“洛書”。這個神話我不復述了,有興趣的可以在搜擎上輸入“希臘神話 迷宮”,就能找到很多的介紹。
迷宮的神話講述了一位英雄如何靠著“線團”殺死了牛頭怪(玩過《英雄無敵》的朋友一定知道要想造牛頭怪,就必須建迷宮,也是從這裡來的),我看到的一本書上援引這段神話講述迷宮演算法的時候,不知是有意杜撰,還是考證不嚴,把這個過程敘述成:英雄靠著線團的幫助——在走過的路上鋪線,每到分岔口向沒鋪線的方向前進,如果遇到死衚衕,沿鋪的線返回,並鋪第二條線——走進了迷宮深處,殺死了牛頭怪。然而,神話傳說講的是,英雄被當成貢品和其他的孩子送到了迷宮的深處,英雄殺死了牛頭怪,靠著線團標識的路線退出了迷宮。實際上,這個線團只是個“棧”,遠沒有現代人賦予給它的“神奇作用”。我想作者也是RPG玩多了,總想著怎樣“勇者鬥惡龍”,然而,實際上卻是“勝利大逃亡”。
迷宮問題實際上是一個心理測試,它反映了測試者控制心理穩定的能力——在一次次失敗後,是否失去冷靜最終陷在迷宮之中,也正體現了一句詩,“不識廬山真面目,只緣身在此山中”。換而言之,我們研究迷宮的解法,並沒有什麼意義,迷宮就是為人設計的,而不是為機器設計的,它之所以稱為“迷”宮,前提是人的記憶準確性不夠高;假設人有機器那樣的準確的記憶,只要他不傻,都能走出迷宮。現在可能有人用智慧機器人的研究來反駁我,實際上,智慧機器人是在更高的層面上模擬人的思考過程,只要它完全再現了人的尋路過程,它就能走出迷宮。但是,研究迷宮生成的計算機方法,卻是有意義的,因為人們總是有虐待自己的傾向(不少人在RPG裡的迷宮轉了三天三夜也不知道疲倦),呵呵,笑談。
不管怎麼說,還是親自研究一下計算機怎麼走迷宮吧。
迷宮的
按照慣例,用一個二維陣列來表示迷宮,0表示牆,1表示通路,以後我們的都走下面這個迷宮。
:namespace prefix = o ns = "urn:schemas--com::office" />
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-959574/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料結構學習(C++)——遞迴【1】 (轉)資料結構C++遞迴
- 資料結構學習(C++)——遞迴【2】(1) (轉)資料結構C++遞迴
- 資料結構學習(C++)——遞迴【2】(3) (轉)資料結構C++遞迴
- 資料結構學習(C++)——遞迴【3】(2) (轉)資料結構C++遞迴
- 資料結構學習(C++)——遞迴【2】(2) (轉)資料結構C++遞迴
- 資料結構學習(C++)——遞迴【2】(4) (轉)資料結構C++遞迴
- 資料結構學習(C++)——迴圈連結串列 (轉)資料結構C++
- 資料結構與演算法學習總結--遞迴資料結構演算法遞迴
- 資料結構-遞迴資料結構遞迴
- 資料結構學習筆記-遞迴求解森林高度資料結構筆記遞迴
- 資料結構學習(C++)——二叉樹【1】 (轉)資料結構C++二叉樹
- 資料結構學習(C++)續——排序【3】交換排序 (轉)資料結構C++排序
- 資料結構學習(C++)——二叉樹【3】 (轉)資料結構C++二叉樹
- 資料結構學習(C++)——序言 (轉)資料結構C++
- 資料結構學習(C++)——圖(總結) (轉)資料結構C++
- 資料結構學習(C++)——樹(總結) (轉)資料結構C++
- 資料結構學習(C++)——圖【1】(基本儲存方法) (轉)資料結構C++
- 資料結構學習(C++)續——排序【1】測試程式 (轉)資料結構C++排序
- 資料結構學習(C++)——圖【3】(無向圖)(上) (轉)資料結構C++
- 資料結構學習(C++)——圖【3】(無向圖)(下) (轉)資料結構C++
- 資料結構學習(C++)——線性鏈式結構總結(代後記)【1】 (轉)資料結構C++
- 資料結構5_遞迴資料結構遞迴
- 資料結構學習(C++)——雙向連結串列 (轉)資料結構C++
- 資料結構學習(C++)——稀疏矩陣(十字連結串列【1】) (轉)資料結構C++矩陣
- 資料結構學習(c++)——二叉樹 (轉)資料結構C++二叉樹
- PLSQL學習-【3迴圈結構】SQL
- 基礎資料結構之遞迴資料結構遞迴
- 前端學習 資料結構與演算法 快速入門 系列 —— 遞迴前端資料結構演算法遞迴
- 【資料結構】二叉樹遍歷(遞迴+非遞迴)資料結構二叉樹遞迴
- 資料結構學習(C++)——二叉樹【2】 (轉)資料結構C++二叉樹
- 資料結構學習(C++)——圖【4】(最短路徑) (轉)資料結構C++
- 資料結構學習(C++)——圖【2】(DFS和BFS) (轉)資料結構C++
- 資料結構和演算法:遞迴資料結構演算法遞迴
- 資料結構:歸併排序(非遞迴)資料結構排序遞迴
- 資料結構與演算法:遞迴資料結構演算法遞迴
- 關於樹型結構資料遞迴查詢,轉非遞迴查詢的實現遞迴
- 透過例子學習Lua(3)----Lua資料結構(轉)資料結構
- 資料結構學習筆記1資料結構筆記