2020年8月29日 星期六

演算法

 最近刷了不少題,配合上別人分析與自己經驗,好像開始了解電腦思維。 

 

 

從某種角度來說,電腦很笨,只能照規則處理數據;另一方面來說,電腦很高效,對於數據可以大量、高效處理。

 

人的思考通常是由小到大,比如說先學加法再學乘法,先學代數再學微積分,對於事物理解總是由基礎慢慢延展到大,由地球上的物理特性再延申到整個宇宙。


而電腦不是,電腦從發明那天起,就能高效的處理運算,所以電腦並不需要什麼由小到大,程式作法是把大問題拆解成小問題,條列出幾種規則就能處理。


舉例來說,fibonacci 數列 1 1 2 3 5 8 13 21 34…,人的作法是1+1=2,2+1=3,2+3=5,5+3=8 以此類推。電腦可以反過來,用遞迴的算法處理,要算數列第 5 個,因為第 5 個是第 4 與第 3 相加,而第 4 是第 2 與第 3 相加,第 3 是 第 1 與第 2 相加,知道第1跟第2是1,於是就知道第3,再來就可以回推到第5。整體來說,電腦是一種由最後往前推的思維,有點像是以終為始概念。


雖然說還在學習,不過我感覺很多算法都是沿著這樣的思考方式去做,希望對妳有所啟發。

沒有留言:

張貼留言