2011/03/28

遞迴很重要啊

Recursion(遞迴、遞歸、迴歸),很重要啊。

最近,幫某人檢查他寫的程式,是用Matlab寫的,雖然我不太會,但他也沒用到什麼了不起的特色功能或是函式庫,所以我邊看邊學倒也OK。

他需要看一篇論文,理論證明的部份搞懂後,論文最後有跑程式模擬得出數據,但是論文作者似乎沒有公布原始碼,所以指導教授要他寫出程式出來,一來可以實際動手並且更了解論文內容,二來,有新的理論模型時,可以修改程式,跑出新的數據,測試看看新的模型可不可行,可行的話,我想那就是一篇論文囉。

細節部分就不多說,最難(對他來說)的一個地方是,給定n個東西,要用窮舉法排列出所有的排列組合(總共n!種),每種排列組合都要做某種運算,所有組合的運算值得知後,找出其中最大的值。

老實說,當我看到他用iteration(疊代)的方式來寫,也就是說用loop(迴圈)來寫,真的嚇了我一跳,因為,我看不懂啊!我雖然幫他用recursion的方式寫了那部分的程式碼,不過他執意要用迴圈寫,唉,搞不懂為什麼耶。經過一番努力後,我終於看懂網路上用iteration寫recursion的程式碼,不過我還是沒看懂他的程式碼,Orz。


遞迴很重要啊,很多演算法用遞迴寫是多麼自然、多麼簡單啊,會寫程式的人可別說你不會recursion。

2 comments:

  1. 實際上他的case用recurssion來寫會出事嗎

    ReplyDelete
    Replies
    1. "我雖然幫他用recursion的方式寫了那部分的程式碼"...不會,我幫他改寫了。

      Delete