(1)算法學習-遞歸法

算法學習筆記:

遞歸法

1.L型瓷磚問題:巧妙地將一塊L型瓷磚放到中央位置順利地將正方形切成四個比較小的,也缺了一角的正方形。然後遞歸的處理這四個小正方形即可。


2.求解最大公因數:輾轉相除法

             兩數相減所得差值一定是最大公因數的倍數,也就是兩數相除得到的餘數一定是最大公因數的倍數。如此可知,兩數相除之後得到的餘數,求最大公因數的問題即變成餘數與較小那個數之間求最大公因數的問題(問題相同,對象縮小即可使用遞歸的方法),如此遞歸直到餘數不會繼續變小即可。

3.過橋問題

橋上只能有兩個人經過,只有一個手電筒,要經過該橋時必須拿着一個手電筒,每個人的過橋時間不一兩個人的過橋時間以最慢的那個人爲主。問怎麼樣過橋才能使過橋時間最短?

      當只有三個人時,最快的帶最慢的過橋,然後折回接另一個人過橋

      當只有兩個人或一個人時以最慢的過橋時間爲準

      當大於或等於四個人且人數爲偶數時,將問題分解成最快的前兩個人將其他兩個人一兩個人一組地送到橋對面且時間最短的問題,而將兩個人一組送到對面的情況有兩種(A,B,C,D過橋時間遞增):1,AC過橋,A回,AD過橋A回  2,AB過橋A回,CD過橋B回。比較這兩種方法的時間長短,取最短的時間方法。此後,AB最後過橋。

       當大於四個人且人數爲奇數時,將問題分解爲大於或等於四個人人數爲偶數+只有三個人的問題分析。


4.相對於遞歸法,還有遞推法,遞歸法爲由大到小,遞推法由小到大~


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章