本人菜鳥,看到這個算法的時候覺得好巧妙,但是自己怎麼也想不出來啊。。。
所謂遞歸,其實人類是做不到的,因為遞歸嵌套多了,人就亂了,有點像是盜夢空間裡的深層夢境limbo,到那就幾乎回不到現實了。
但是計算機不像人類想法那麼多,尤其是基於過程的設計,你教我怎麼走我就怎麼走,不會混亂,但是你得給我定個邊界條件,要不我還是回不來。
漢諾塔的確是一個經典的遞歸問題,而人類做的最偉大的一步在於,把f(n)的問題轉化為f(n-1),推本溯源,總要找到一個origin起始點(也是結束點)。
在這方面,計算機做的比人類強太多。然而,編程的時候,寫遞歸還是挺痛苦的,主要在於邊界條件設置要很小心,錯了程序就傻傻地一去不復返啦!
至於理解一系列遞歸問題,先百度,再谷歌,多找幾個范例~