假定n为3的幂,考虑下面递推式,f(n)=9f(n/3)+n²,n≥2,f(1)=1,用展开法求解递推式
时间: 2024-05-25 07:14:31 浏览: 124
展开法是一种递归展开的方法,将递推式一步一步展开,直到得到初始条件的表达式。在这个问题中,我们可以按照以下步骤展开递推式:
f(n) = 9f(n/3) + n²
= 9[9f(n/9) + (n/3)²] + n²
= 9²f(n/9) + 9(n/3)² + n²
= 9²f(n/9) + 3n²
= 9³f(n/27) + 3n² + 9(n/3)²
= 9³f(n/27) + 12n²
= 9^k f(n/3^k) + kn²
我们可以发现,展开后的递推式是一个等比数列的和,其中首项为 f(n),公比为 9,项数为 k = log3n。因此,我们可以使用等比数列求和公式来得到 f(n) 的表达式:
f(n) = 1/(1-9) [9^k f(n/3^k) + kn²]
= 1/8 [9^log3n f(1) + log3n n²]
= 1/8 [n^2 + 3n(log3n-1)/2 + 9(log3n-1)^2/2]
因为 n 是 3 的幂,所以 log3n = k,可以化简为:
f(n) = 1/8 [n^2 + 3nk/2 + 9k^2/2]
= 1/8 [n^2 + 3nlog3n/2 + 9(log3n)^2/2]
因此,f(n) 的表达式为:f(n) = 1/8 [n^2 + 3nlog3n/2 + 9(log3n)^2/2]。
阅读全文