程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++數據結構學習:遞歸(3)

C++數據結構學習:遞歸(3)

編輯:C++入門知識
  關於迷宮,有一個引人入勝的希臘神話,這也是為什麼現今每當人們提到這個問題,總是興致勃勃(對於年青人,估計是RPG玩多了),正如雖然九宮圖連小學生都能做出來,我們總是自豪的說那叫“洛書”。這個神話我不復述了,有愛好的可以在搜索引擎上輸入“希臘神話 迷宮”,就能找到很多的介紹。
  
     迷宮的神話講述了一位英雄如何靠著“線團”殺死了牛頭怪(玩過《英雄無敵》的朋友一定知道要想造牛頭怪,就必須建迷宮,也是從這裡來的),我看到的一本編程書上援引這段神話講述迷宮算法的時候,不知是有意杜撰,還是考證不嚴,把這個過程敘述成:英雄靠著線團的幫助——在走過的路上鋪線,每到分岔口向沒鋪線的方向前進,假如碰到死胡同,沿鋪的線返回,並鋪第二條線——走進了迷宮深處,殺死了牛頭怪。然而,神話傳說講的是,英雄被當成貢品和其他的孩子送到了迷宮的深處,英雄殺死了牛頭怪,靠著線團標識的路線退出了迷宮。實際上,這個線團只是個“棧”,遠沒有現代人賦予給它的“神奇作用”。我想作者也是RPG玩多了,總想著怎樣“勇者斗惡龍”,然而,實際上卻是“勝利大逃亡”。
  
     迷宮問題實際上是一個心理測試,它反映了測試者控制心理穩定的能力——在一次次失敗後,是否失去冷靜最終陷在迷宮之中,也正體現了一句詩,“不識廬山真面目,只緣身在此山中”。換而言之,我們研究迷宮的計算機解法,並沒有什麼意義,迷宮就是為人設計的,而不是為機器設計的,它之所以稱為“迷”宮,前提是人的記憶准確性不夠高;假設人有機器那樣的准確的記憶,只要他不傻,都能走出迷宮。現在可能有人用智能機器人的研究來反駁我,實際上,智能機器人是在更高的層面上模擬人的思考過程,只要它完全再現了人的尋路過程,它就能走出迷宮。但是,研究迷宮生成的計算機方法,卻是有意義的,因為人們總是有虐待自己的傾向(不少人在RPG裡的迷宮轉了三天三夜也不知道倦怠),呵呵,笑談。
  
     不管怎麼說,還是親自研究一下計算機怎麼走迷宮吧。
  
     迷宮的存儲:按照慣例,用一個二維數組來表示迷宮,0表示牆,1表示通路,以後我們的程序都走下面這個迷宮。
   更多內容請看C/C++技術專題  數據結構  數據結構教程專題,或
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved