精確分析複雜的遞推關係(多項式函式)
設定a(n)=5*a(n-1)+3^n+7^n,按照以前的相同的處理方式有:
a(n-1)=5*a(n-2)+3^(n-1)+7^(n-1)
go上面兩個式子(1)-7*(2)有:
a(n)-7*a(n-1)=5* + 3^n - 7* 3^(n-1)
化簡有:
a(n)-7*a(n-1)=5* + - 4* 3^(n-1)
從這裡可以看出其中將只存在乙個多項式函式,按照這種思維可以獲得a(n)的通項公式:
a(n)=a*7^n+b*5^n+c*3^n
現在假設初始值a(1)=1,推理有a(2)=63,a(3)=685
所以可以解得
a=7/2
b=-19/5
c=-3/2
下面寫程式來證明:
(defun pow (num count)
(if (or (> count 1) (eq count 1) )
(* num
(pow num
(- count 1) ) )
1))(defun slayer ( count)
(if (or (> count 1) (eq count 1) )
(* count
(slayer
(- count 1) ) )
1))(defun expr (n)
(if (eq n 1)
1
(+ (* 5
(expr (- n
1)))
(pow 3
n)(pow 7
n))))
(setq a 7/2)
(setq b -19/5)
(setq c -3/2)
(defun formula (n)
(+ (* a
(pow 7 n))
(* b
(pow 5 n))
(* c
(pow 3 n))))
(defun test (n)
(if (> n 0)
(progn
(print (expr n))
(print 'compare)
(print (formula n))
(test (- n 1)))
(print 'over)))
[31]> (test 10)
compare
compare
compare
compare
compare
compare
compare
compare
compare
compare
over
over
很明顯這裡a佔據主要位置,並且b,c都為負數,7的指數的增長速度也快於其它兩者。
精確分析複雜的遞推關係 多項式函式的疊加
精確分析複雜的遞推關係 多項式函式的疊加 設定a n 8 a n 1 3 n 7 n n 2,按照以前的相同的處理方式有 a n 1 8 a n 2 3 n 1 7 n 1 n 1 2 go上面兩個式子 1 7 2 有 a n 7 a n 1 8 3 n 7 3 n 1 n 2 7 n 1 2 化簡...
希希的多項式(推遞推式)
時間限制 c c 1秒,其他語言2秒 空間限制 c c 131072k,其他語言262144k 64bit io format lld nozomi 是乙個可愛的女孩子。她喜歡研究一些多項式。這次,她給你了乙個多項式 她想問你 輸入第一行表示乙個數 t t 105 表示輸入組數。以下 t 行一行乙個...
演算法的時間複雜度比較,計算多項式的直接法和秦九韶法
1.直接法 1 double polynomial 1 int n,double a,doublex 2 每次迴圈迭代,pow函式內部都會執行i次乘法,然後一次加法,所以整體的演算法複雜度為o 1 2 n 2 3 2n,儘管pow函式的實現方法是利用遞迴優化後的,但是演算法複雜度還是達到了o nlo...