沒錯,遞迴就是在自己的方法體內呼叫自己,說白了就是自己玩自己,所以這相當於乙個無限迴圈,因為他自己一直存在,那就一直可以玩自己,所以還要加上讓它停止的條件,要不然他就把自己玩壞了,就會報異常。
遞迴比較有代表性的就是斐波那契數列:1 1 2 3 5 8… 就是從第三項開始,每一項等於前兩項之和。話不多說上**
public
class
fibonacci
//斐波那契數列:1 1 2 3 5......
public
static
intfibonacci
(int i)
else
}}
結果自然是5,這不比用迴圈,abc互相賦值什麼的舒服多了
第二個有代表性的就是漢諾塔,相傳這是印度的乙個古老的遊戲,大梵天創造世界的時候做了三根金剛石柱子。然後又閒的*疼命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動乙個圓盤。
第一次見的道友建議去玩一下這個小遊戲:遊戲鏈結
玩過以後規律自然就出來了,要想把最下面的盤子取出來,只有把上面所有的盤子都挪到中間柱子,然後才能取出最後乙個盤子到最後乙個柱子,然後再把上面所有的盤子挪到第三根柱子,**展示
public
class
hanoi
/** *
* @param i:共有幾個盤子
* @param from:開始的柱子
* @param in:中間的柱子
* @param to:目標柱子
*/public
static
void
hanoi
(int i,
char from,
char in,
char to)
else
}}
測試結果
乙個自製的遊戲攻略就出來啦
雙邊濾波 通俗自己理解
原文 原文有圖 還有一種解釋 雙邊濾波 bilateral filter 是非線性濾波中的一種。這是一種結合影象的空間鄰近度與畫素值相似度的處理辦法。在濾波時,該濾波方法同時考慮空間臨近資訊與顏色相似資訊,在濾除雜訊 平滑影象的同時,又做到邊緣儲存。雙邊濾波採用了兩個高斯濾波的結合。乙個負責計算空間...
FFT詳解,通俗易懂便於自己理解
演算法課最近講到了遞迴分治的策略,留下了第乙個有技術含量的作業 簡化多項式計算的fft演算法,於是我打算在這裡結合前人的分析解析一下這一演算法。fft即fast fourier transform,是快速傅利葉變換的簡稱,採用這種方法能採用這種演算法能使計算機計算離散傅利葉變換所需要的乘法次數大為減...
自己關於遞迴的一些理解
遞迴是一種抽象的概念,比如當我們想要完成某一遞迴函式dfs 的功能時,你可以先假設這個dfs 已經有你想要的功能啦,先書寫主題思路即推出dfs i 和dfs i 1 間的關係,明確它們的關係之後,就可以寫出主體思路,之後再書寫臨界條件,臨界條件功能寫完,藉著前邊咱們定義的關係,就可以一直逆推到答案,...