2023年7月17日ICPC訓練聯盟 遞迴與回溯

2021-10-08 05:40:21 字數 1083 閱讀 9533

程式呼叫自身的程式設計技巧叫做遞迴,是子程式再起定義或說明中直接或間接呼叫自身的一種方法

簡稱:我呼叫我自己

視覺形式:德羅斯特效應

德羅斯特效應(droste effect)是遞迴的一種視覺形式,是指一張的某個部分與整張相同,如此產生無限迴圈。

遞迴就是將乙個大型複雜的問題層層轉化為乙個與原問題相似的規模較小的問題來求解因此只需要少量的程式**就可以描述出解題過程中需要的多次重複計算,使程式更加簡潔清晰

遞迴演算法一般用於解決三類問題:

1、函式定義是遞迴的(斐波那契數列、階乘)

2、資料結構形式按照遞迴定義(二叉樹的三種遍歷、圖的dfs)

3、問題的解法是遞迴的(回溯)

舉個階乘的例子,**塊如下:

int

fac(

int n)

可以這樣理解,我們假設n是3,這個函式該如何計算3!呢?

int

fac(3)

}}};

}

採用遞迴方法求解回溯問題,是遞迴演算法的乙個應用。

回溯法從初始狀態出發,運用題目給出的條件、規則,按照縱深搜尋的順序

遞迴擴充套件所有可能情況,從中找出滿足題意的解答。所以,回溯法就是走不通就退回再走的技術,非常適合用遞迴方法

回溯法是搜尋演算法中的一種控制策略,該演算法從初始狀態出發,

運用題目給出的條件、規則,按選優條件向前搜尋,以達到目標。

當搜尋到某一步時,發現原先選擇並不優,或者達不到目標,就

退回一步重新選擇。

這種方法與第四篇中圖的深度優先搜尋( dfs )在本質上是一致的。
遞迴與回溯的綜述:遞迴是一種演算法結構。遞迴出現在程式的子程式中,形式上表現

為直接或間接的自己呼叫自己。而回溯則是一種演算法思想,他是以遞迴實現的。回溯類似窮舉法,但回溯有

「剪枝」功能,即自我判斷過程

課程總結 2023年12月17日

這個編輯器還挺方便的,一拉就進來了!好!那麼就開始更新今天的課程小結!接著昨天設計測試的內容,今天是繼續學習了場景設計法 判定表法和錯誤猜測法三種測試方法。首先是場景設計法,場景設計法的基本思想是將使用者一系列的操作事件觸發情景的場景做乙個模擬,在此基礎上進一步設想同一事件的不同觸發順序和處理結果形...

2023年7月6日打卡

乙個機械人位於乙個 m x n 網格的左上角 機械人每次只能向下或者向右移動一步。機械人試圖達到網格的右下角。現在考慮網格中有障礙物。那麼從左上角到右下角將會有多少條不同的路徑?網格中的障礙物和空位置分別用 1 和 0 來表示。說明 m 和 n 的值均不超過 100。原題是有圖的,但是我懶得粘過來,...

2023年7月10日筆記

問題1 from operator import itemgetter 用法 a itemgetter 1 取a的第1個元素 問題2 pycharm debug的用法。問題3 axis 0 和axis 1的區別 1表示橫軸,方向從左到右 0表示縱軸,方向從上到下。問題1 from operator ...