我希望自己能一直寫下去
讀過的東西大部分都會忘記,為了讓自己在未來快速回憶已經理解過的東西,現在要再多花點時間把知識內化,用自己的話寫出來
回到課程內容:
1.recursion每呼叫自己一次就會在stack push 1個”activation record”(我先簡稱為空間,這名稱需要背嗎),這個空間包含了(1)值(2)區域變數(3)返回位址三個東西;當遇到終止符號”}”時檢查stack是否為空,是的話就end,不是的話就pop出那個空間並依照那個空間的返回位址繼續執行
2.n!、fibonacci的iterative(迭代)和recursive要會寫,有點難用文字解釋,iterative就是單純用if, else, for,可以用很多參數去把答案硬算出來,recursive則是 if …則return(終止),else則call自己=(自己-1)?….
3.fibonacci會問的東西有1.值2.總/個別 呼叫次數3.呼叫次數的遞迴定義,都蠻簡單的
4.dynamic programing(D.P)就是建一個table,把算出來的答案填進去,這樣是為了不重複計算已有的答案,節省時間
結論:費氏數列的概念很簡單,但是要寫iterative和D.P的pseudo code有點難,很容易忘,可能就是要多默寫幾遍