學習筆記 求解簡單遞迴式的一般方法

2021-09-24 10:42:14 字數 833 閱讀 3327

手動部落格搬家: 本文發表於20180618 15:53:06, 原位址

咦我那時候不應該在準備期末考試嗎

一、求解\(f(n)=af(n-1)+b\)

解: \(f(n)=af(n-1)-\frac+\frac\)

\(f(n)+\frac=a(f(n-1)+\frac)\)

同理\(f(n-1)+\frac=a(f(n-2)+\frac)\)

\(......\)

\(f(2)+\frac=a(f(1)+\frac)\)

\(f(n)=a^(f(1)+\frac)-\frac\)

二、求解\(f(n)=af(n-1)+bf(n-2)\)

特徵方程法

令\(x+y=a, xy=-b\)

\(f(n)=(x+y)f(n-1)-xyf(n-2)\)

\(f(n)-xf(n-1)=y(f(n-1)+xf(n-2))=y^(f(2)-xf(1))\)

\(f(n)-yf(n-1)=x(f(n-1)+yf(n-2))=x^(f(2)-yf(1))\)

\((x-y)f(n-1)=x^(f(2)-yf(1))-y^(f(2)-xf(1))\)

\(f(n)=\frac(f(2)-yf(1))-y^(f(2)-xf(1))}\)

以上兩種方法的本質都是構造一種函式\(g(x)=dg(x-1)\). 但是構造的方式略有不同。

發表於

2019-01-16 12:57

suncongbo 閱讀(

...)

編輯收藏

重新整理頁面

返回頂部

lambda遞迴呼叫的一般方法

普通遞迴呼叫,例如求階乘 def fact n if n 0 return 1 else return n fact n 1 被遞迴函式需要乙個固定名稱,以期在函式中引用此名稱進行遞迴。那麼,如果單純使用lambda匿名函式,應如何實現遞迴。以階乘為例,用lambda匿名函式遞迴可寫為 print ...

urllib庫新增headers的一般方法

對於請求一些 我們需要加上請求頭才可以完成網頁的抓取,不然會得到一些錯誤,無法返回抓取的網頁。下面,介紹兩種新增請求頭的方法。方法一 借助build opener和addheaders完成 import urllib.request url 注意 在urllib 中headers是元組 header...

運用動態規劃思想求解問題的一般思路。

1.將原問題分解為子問題 將原問題分解為若干個子問題,子問題和原問題形式相同或類似,只不過規模變小了。子問題都解決,原問題即解決。子問題的解一旦求出就會被儲存,所以每個子問題只需求解一次。2.確定狀態 在用動態規劃解題時,我們往往將和子問題相關的各個變數的一組取值,稱之為乙個 狀態 乙個 狀態 對應...