Yahoo 知識+ 將於 2021 年 5 月 4 日 (美國東岸時間) 停止服務,而 Yahoo 知識+ 網站現已轉為僅限瀏覽模式。其他 Yahoo 資產或服務,或你的 Yahoo 帳戶將不會有任何變更。你可以在此服務中心網頁進一步了解 Yahoo 知識+ 停止服務的事宜,以及了解如何下載你的資料。

xyz 發問於 科學數學 · 5 年前

求解遞迴式:T(n) = lg(n) +2T(n/4) , n為正整數,n>=2. t(2)=c (某常數).?

更新:

繼續:設 2*4^k=n

1. n=2*4^k

=> n=2*(2^k)^2

=> √(n/2)=2^k

2.n=2*4^k

=> lg(n)=lg(2*4^k)=1+2k

=> lg(n)-1=2k

(lg為以2為底數的對數 計算機/離散數學常用)

代入 Ans: T( 2 * 4^k ) = (2^k)c + ( log 2 )[ 5(2^k) - 2k - 5 ]

得: T(n)=(c+5)*√(n/2) - (lg(n)-1) -5

=(c+5)*√(n/2) - lg(n) -4

更新 2:

所以 原問題的"n為正整"的陳述至少應改成正有理數

1 個解答

評分
  • ?
    Lv 5
    5 年前
    最愛解答

    若題目中的 lg ( n ) 是指 log ( n ) , 即以 10 為底數, n 的對數, 則 :

    Sol :

    T(n) - 2*T(n/4) = log n

    T( 2 * 4 ) - 2*T(2) = log ( 2 * 4 ) ..... (1)

    T( 2 * 4² ) - 2*T( 2 * 4 ) = log ( 2 * 4² ) ..... (2)

    T( 2 * 4³ ) - 2*T( 2 * 4² ) = log ( 2 * 4³ ) ..... (3)

    T( 2 * 4⁴ ) - 2*T( 2 * 4³ ) = log ( 2 * 4⁴ ) ..... (4)

    .............................

    T( 2 * 4^(k-2) ) - 2*T( 2 * 4^(k-3) ) = log ( 2 * 4^(k-2) ) ..... (k-2)

    T( 2 * 4^(k-1) ) - 2*T( 2 * 4^(k-2) ) = log ( 2 * 4^(k-1) ) ..... (k-1)

    T( 2 * 4^k ) - 2*T( 2 * 4^(k-1) ) = log ( 2 * 4^k ) ..... (k)

    將第 i 式乘以 2^( k - i ) 得 :

    2^(k-1)*T( 2 * 4 ) - (2^k)T(2) = 2^(k-1)*log ( 2 * 4 ) ..... ( 1# )

    2^(k-2)*T( 2 * 4² ) - 2^(k-1)*T( 2 * 4 ) = 2^(k-2)*log ( 2 * 4² ) ..... ( 2# )

    2^(k-3)*T( 2 * 4³ ) - 2^(k-2)*T( 2 * 4² ) = 2^(k-3)*log ( 2 * 4³ ) ..... ( 3# )

    2^(k-4)*T( 2 * 4⁴ ) - 2^(k-3)*T( 2 * 4³ ) = 2^(k-4)*log ( 2 * 4⁴ ) ..... ( 4# )

    .............................

    ( 2² )T( 2 * 4^(k-2) ) - ( 2³ )T( 2 * 4^(k-3) ) = ( 2² )log ( 2 * 4^(k-2) ) ..... ( k-2 # )

    2*T( 2 * 4^(k-1) ) - ( 2² )T( 2 * 4^(k-2) ) = 2*log ( 2 * 4^(k-1) ) ..... ( k-1 # )

    T( 2 * 4^k ) - 2*T( 2 * 4^(k-1) ) = log ( 2 * 4^k ) ..... ( k# )

    ( 1# ) + ( 2# ) + ( 3# ) + ...... + ( k-1 # ) + ( k# ) 得 :

    T( 2 * 4^k ) - (2^k)T(2)

    = 2^(k-1)*log (2*4) + 2^(k-2)*log (2*4²) + 2^(k-3)*log (2*4³) + ..... + 2*log (2*4^(k-1)) + log (2*4^k)

    = 2^(k-1)*log (2^3) + 2^(k-2)*log (2^5) + 2^(k-3)*log (2^7) + ..... + 2*log (2^(2k-1)) + log (2^(2k+1))

    = 2^(k-1)*(3 log 2) + 2^(k-2)*(5 log 2) + 2^(k-3)*(7 log 2) + ..... + 2*( (2k-1) log 2) + ( (2k+1) log 2)

    = log 2 * [ 3*2^(k-1) + 5*2^(k-2) + 7*2^(k-3) + ..... + (2k-1)*2 + (2k+1) ]

    T( 2 * 4^k ) - (2^k)T(2) = log 2 * [ 3*2^(k-1) + 5*2^(k-2) + 7*2^(k-3) + ..... + (2k-1)*2 + (2k+1) ]

    令 S = 3*2^(k-1) + 5*2^(k-2) + 7*2^(k-3) + 9*2^(k-4) + .....+ (2k-3)*2^2 + (2k-1)*2 + (2k+1)

    則 2S = 3(2^k) + 5*2^(k-1) + 7*2^(k-2) + 9*2^(k-3) + ..... + (2k-3)*2^3 + (2k-1)*2^2 + (2k+1)*2

    2S - S = 3(2^k) + [ 2*2^(k-1) + 2*2^(k-2) + 2*2^(k-3) + ..... + 2*2^2 + 2*2 ] - (2k+1)

    S

    = 3(2^k) - 2k - 1 + [ 2^k + 2^(k-1) + 2^(k-2) + ..... + 2^3 + 2^2 ]

    = 3(2^k) - 2k - 1 + 2^2*[ 2^(k-1) - 1 ]/(2-1)

    = 3(2^k) - 2k - 1 + 2^(k+1) - 4

    = 3(2^k) - 2k - 1 + 2(2^k) - 4

    = 5(2^k) - 2k - 5

    T( 2 * 4^k ) - (2^k)T(2) = ( log 2 )S

    T( 2 * 4^k ) - (2^k)c = ( log 2 )[ 5(2^k) - 2k - 5 ]

    T( 2 * 4^k ) = (2^k)c + ( log 2 )[ 5(2^k) - 2k - 5 ]

    Ans: T( 2 * 4^k ) = (2^k)c + ( log 2 )[ 5(2^k) - 2k - 5 ] , 其中 k 為正整數

    --------------------------------------------------------------------------------------------------------

    驗算 :

    設 T(2) = c = 7 , k = 9

    利用答案的式子 T( 2 * 4^k ) = (2^k)c + ( log 2 )[ 5(2^k) - 2k - 5 ] , 所以 :

    T( 524288 ) = (2^9)7 + ( log 2 )[ 5(2^9) - 2*9 - 5 ] ≒ 4347.713

    再利用 Excel 模擬遞迴式 T(n) = log n + 2*T(n/4) 如下 :

    A1 儲存格輸入 2 , B1 輸入 7 ,

    A2 輸入 =A1*4

    再下拉到 A10 , 則 A10 的計算結果為 524288

    B2 儲存格輸入 =LOG(A2)+2*B1

    再下拉到 B10 , 則 B10 的計算結果約為 4347.713

    故驗算無誤

還有問題嗎?立即提問即可得到解答。