通俗的理解遞

2021-08-17 06:59:09 字數 834 閱讀 9210

在學習遞迴的過程中,個人感覺真的晦澀難懂,遞迴就是函式自己呼叫自己。

遞迴程式的基本步驟:1.初始化演算法。遞迴程式通常需要乙個開始時使用的種子值(seed value)。2.要完成此任務,可以向函式傳遞引數,或者提供乙個入口函式, 這個函式是非遞迴的,但可以為遞迴計算設定種子值。3.檢查要處理的當前值是否已經與基線條件相匹配。如果匹配,則進行處理並返回值。使用更小的或更簡單的子問題(或多個子問題)來重新定義答案。4.對子問題執行演算法。5.將結果合併入答案的表示式。6.返回結果。

#include #includevoid func(int n)

}int main()

函式的執行過程,func(4)輸出4,呼叫func(4-2)為func(2)輸出2;繼續(n-2)<0,此時退出,遞迴的操作實際就是棧的操作,先執行func(2)輸出2,在執行func(4),輸出4,則輸出結果為:4,2,2,4;

函式執行過程,主函式呼叫func(4),則輸出4,func(4-2),滿足條件輸出2,再執行第二個執行func(n-2)即func(4-2),滿足條件輸出2,此時2-2=0不滿足條件,則執行func(2)輸出2,執行func(4)輸出4,則結果為:4,2,2,2,2,4。

AOP的通俗理解

物件導向程式設計更多的操作是在縱向部分 即繼承,介面實現之類 這就導致一些需要在橫向上 即業務 方法中的前後 嵌入的非核心 得在每乙個方法上都要去寫 比如日誌,許可權,異常處理等 它們散布在各方法的橫切面上,造成 重複,也不利於各個模組的重用 畢竟,不同方法還是有所區別 aop就是為了解決這種男題而...

shell的通俗理解

引自 一 shell的含義 首先shell的英文含義是 殼 它是相對於核心來說的,因為它是建立在核心的基礎上,面向於使用者的一種表現形式,比如我們看到乙個球,見到的是它的殼,而非核。linux中的shell,是指乙個面向使用者的命令介面,表現形式就是乙個可以由使用者錄入的介面,這個介面也可以反饋執行...

BERT的通俗理解

bert是乙個預訓練的模型,那麼什麼是預訓練呢?舉例子進行簡單的介紹 假設已有a訓練集,先用a對網路進行預訓練,在a任務上學會網路引數,然後儲存以備後用,當來乙個新的任務b,採取相同的網路結構,網路引數初始化的時候可以載入a學習好的引數,其他的高層引數隨機初始化,之後用b任務的訓練資料來訓練網路,當...