程序化計算線性變換後的等比數列

假如 a[n]=32n13a[n] = 32^{n - 1}-3, 我們希望通過 O(logn)O(logn) 的方法求出數列的第 iia[i]a[i],不妨令 b[n]=2n1b[n] = 2^{n - 1},顯然我們可以通過 O(logn)O(logn) 的方法求出 b[n]b[n],而 a[n]=3b[n]3a[n] = 3b[n] - 3
推而廣之,如果我們想要計算數列 a[n]=k1e1n+k2e2n++kmemna[n] = k_1\cdot e_1^{n}+k_2\cdot e^{n}_2+\cdots+k_m\cdot e^{n}_m 的第 nn 項, 可以看作是等比數列 基 bib_i =eine_i^{n} 的線性組合後的結果, 利用程序可以在 O(logn)O(logn) 的時間內求出 bib_i,總時間複雜度爲 O(mlogn)O(mlogn)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章