看板 Python 關於我們 聯絡資訊
我學Python大概半個月 之前有學過資料結構和演算法(但沒用程式實作過) leetcode上難度easy的array或是linked list的題目可以解7成 這陣子想說來刷Tree的題目 但沒有一題能夠靠自己想出來 我本身知道遞迴在幹嘛(知道數學遞迴定義) 不過沒辦法自己寫程式跑出正確答案 然後上網看別人的答案又看得懂 看自己的程式又臭又長跑不出答案 但是看到別人的程式才簡單幾行 真的是滿滿的挫折感 程式新手要怎麼建構程式遞迴的概念阿 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 101.10.7.105 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1585285392.A.D98.html
ddavid: 回頭去看看數學上定義的遞迴式? 03/27 13:16
Kuba4ma: 數學定義的遞迴我看得懂 但問題是程式實作不出來 冏 03/27 13:17
※ 編輯: Kuba4ma (101.10.7.105 臺灣), 03/27/2020 13:18:19
ddavid: 那也有可能是程式實踐能力上並沒有你自己所想的充足,你還 03/27 13:18
ddavid: 沒法真的做到腦中想什麼就能化為程式寫出來 03/27 13:19
ddavid: 遞迴說到頭關鍵也就只是寫出遞迴式跟設定終止條件,程式本 03/27 13:20
ddavid: 身是很精簡的 03/27 13:20
ddavid: 另外就是 看得懂 跟 懂 往往是兩回事 03/27 13:21
ddavid: 看得懂有時候是人家寫得很好很漂亮所以好懂,可是你沒有深 03/27 13:22
ddavid: 入去想為什麼這麼寫,如果這邊那邊改動一下會有什麼效果, 03/27 13:22
ddavid: 如果自己來寫會用什麼寫法的話,那不能算是真懂 03/27 13:22
ddavid: 像你也說數學定義的遞迴你看得懂,那你有試過拿習題來自己 03/27 13:23
ddavid: 實際寫出對應的遞迴式跟終止條件嗎 03/27 13:24
ddavid: 或是現實要解個什麼問題,你不管三七二十一就是從其中找個 03/27 13:25
ddavid: 地方用遞迴去思考,有時這雖然不是最佳解法卻可能是很好的 03/27 13:25
ddavid: 思考訓練 03/27 13:25
cuteSquirrel: 把原問題轉化成有固定降解形式的子問題。 03/27 14:16
cuteSquirrel: 還有對應的邊界條件 03/27 14:17
watashino: 我覺得重點就三個啦,前兩個記得一定要有 03/27 14:39
watashino: 1.終止條件 03/27 14:39
watashino: 2.呼叫自己的方式 03/27 14:39
watashino: 3.寫function的過程中呼叫自己的時候可以把這個functio 03/27 14:39
watashino: n當作已經完成了,呼叫了就會有你要的output了,這樣會 03/27 14:40
watashino: 容易很多 03/27 14:40
OrzOGC: 我只能CO別人寫好的來改...QQ 03/27 15:09
pmove: 我刷了一百多題的經驗是,很多tree的簡單題,我想的比一些 03/27 16:58
pmove: 中等,甚至困難難度的還要久,難度只能做參考,並不是絕對 03/27 16:58
liflguy: 發現一整個問題是由小問題組成,可以藉由解決小問題後解 03/27 23:00
liflguy: 決下一階段的問題,數學上基本的表示為f(x)=f(x-1) 03/27 23:00
ddavid: 樓上的式子不太精確XD 03/28 17:15
ddavid: f(x)=f(x-1)只會得到f(x)=f(1) for all x XD 03/28 17:16
protoss: 這資料結構的書不是一開始會教嗎?我記得拿河內塔當例子.. 03/29 03:15
pmove: f(x)=f(x-1)是一種遞迴,但不是所有遞迴都可以這樣子表示 03/29 10:55
yoche2000: 費式數列 03/29 14:44
liflguy: 樓上各位沒錯,只是舉個最簡單的例子XD 03/30 00:20
velaro: python 資料結構的影片 04/04 13:51