資料結構學習(C++)——遞迴【3】(1) (轉)

gugu99發表於2007-08-15
資料結構學習(C++)——遞迴【3】(1) (轉)[@more@]

迷宮

關於迷宮,有一個引人入勝的希臘神話,這也是為什麼現今每當人們提到這個問題,總是興致勃勃(對於年青人,估計是RPG玩多了),正如雖然九宮圖連小學生都能做出來,我們總是自豪的說那叫“洛書”。這個神話我不復述了,有興趣的可以在搜擎上輸入“希臘神話 迷宮”,就能找到很多的介紹。

迷宮的神話講述了一位英雄如何靠著“線團”殺死了牛頭怪(玩過《英雄無敵》的朋友一定知道要想造牛頭怪,就必須建迷宮,也是從這裡來的),我看到的一本書上援引這段神話講述迷宮演算法的時候,不知是有意杜撰,還是考證不嚴,把這個過程敘述成:英雄靠著線團的幫助——在走過的路上鋪線,每到分岔口向沒鋪線的方向前進,如果遇到死衚衕,沿鋪的線返回,並鋪第二條線——走進了迷宮深處,殺死了牛頭怪。然而,神話傳說講的是,英雄被當成貢品和其他的孩子送到了迷宮的深處,英雄殺死了牛頭怪,靠著線團標識的路線退出了迷宮。實際上,這個線團只是個“棧”,遠沒有現代人賦予給它的“神奇作用”。我想作者也是RPG玩多了,總想著怎樣“勇者鬥惡龍”,然而,實際上卻是“勝利大逃亡”。

迷宮問題實際上是一個心理測試,它反映了測試者控制心理穩定的能力——在一次次失敗後,是否失去冷靜最終陷在迷宮之中,也正體現了一句詩,“不識廬山真面目,只緣身在此山中”。換而言之,我們研究迷宮的解法,並沒有什麼意義,迷宮就是為人設計的,而不是為機器設計的,它之所以稱為“迷”宮,前提是人的記憶準確性不夠高;假設人有機器那樣的準確的記憶,只要他不傻,都能走出迷宮。現在可能有人用智慧機器人的研究來反駁我,實際上,智慧機器人是在更高的層面上模擬人的思考過程,只要它完全再現了人的尋路過程,它就能走出迷宮。但是,研究迷宮生成的計算機方法,卻是有意義的,因為人們總是有虐待自己的傾向(不少人在RPG裡的迷宮轉了三天三夜也不知道疲倦),呵呵,笑談。

不管怎麼說,還是親自研究一下計算機怎麼走迷宮吧。

迷宮的

按照慣例,用一個二維陣列來表示迷宮,0表示牆,1表示通路,以後我們的都走下面這個迷宮。

 :namespace prefix = o ns = "urn:schemas--com::office" />

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-959574/,如需轉載,請註明出處,否則將追究法律責任。

相關文章