9種基本演算法 遞推

2021-06-26 10:21:07 字數 833 閱讀 7630

遞推思想:利用某個已知的條件,利用特定關係逐步遞推,直到得到結構。

順推法:從已知條件出發,逐步推算出要解決問題的方法。例如:斐波那契數列

逆推法:從已知結果出發,用迭代表示式逐步推算出問題開始的條件。

例項:斐波那契數列(f(n) = f(n-1)+f(n-2))

兔子出生2個月後就具有繁殖能力,一對兔子每個月能生出一對小兔子。如果所有的兔子都不死,那麼一年能繁殖對少對兔子。

分析:先在紙上推導,再畫**找規律,找到內在關係

月份:1    2    3     4    5    6  

兔子:1    2    3     5    8    13

int fun(int n)

return fun(n - 1) + fun( n -2);

}

例項:斐波那契數列

母親為兒子大學四年準備一筆存款,方式是整存零取,規定兒子每月月底取下個月生活費1000元。現在假設銀行的利息為1.71%,計算母親每月最少需要存入多少錢?

分析:第47月末存款 = 1000 / (1 + 0.0171 / 12)

第46月末存款 = (1000 + 第47月末存款) / (1 + 0.0171 / 12)

第45月末存款 = (1000 + 第46月末存款) / (1 + 0.0171 / 12)

float fun(int n)

return (fun(n +1) + 1000.0) / (1 + 0.0171 / 12);

}

總結:遇到問題想不清楚,先畫圖找規律,或者把問題先分解

9種基本演算法 回溯

回溯思想 先按一條路徑逐一列舉,當發現不是正確街時就退回去選擇其他路徑。回溯步驟 1 定義問題的解空間 2 確定易於搜尋的解空間結構 3 以深度優先方式搜尋解空間,並在搜尋過程中去除無效搜尋 例如 八皇后 在8 8格的西洋棋盤上擺放8個皇后,使其不能相互攻擊,即任意2個皇后不能在同一行同一列同一斜線...

基本演算法之遞推 221 踩方格

測試鏈結 總時間限制 1000ms 記憶體限制 65536kb 描述 有乙個方格矩陣,矩陣邊界在無窮遠處。我們做如下假設 a.每走一步時,只能從當前方格移動一格,走到某個相鄰的方格上 b.走過的格仔立即塌陷無法再走第二次 c.只能向北 東 西三個方向走 請問 如果允許在方格矩陣上走n步,共有多少種不...

C 基本演算法思想之遞推演算法思想

遞推演算法是非常常用的演算法思想,在數學計算等場合有著廣泛的應用。遞推演算法適合有明顯公式規律的場合。遞推演算法基本思想 遞推演算法是一種理性思維莫斯的代表,根據已有的資料和關係,逐步推到而得到結果。遞推演算法的執行過程如下 1 根據已知結果和關係,求解中間結果。2 判斷是否達到要求,如果沒有達到,...