这个递归关系是O(无穷大)吗?
T(n)= 49 * T(n / 7)+ n
没有给出基本条件。
我尝试使用大师定理求解,答案是Theta(n ^ 2)。但是,当使用递归树求解时,该解决方案成为n *(7 + 7 ^ 2 + 7 ^ 3 + ...)的无穷级数 有人可以帮忙吗?
答案 0 :(得分:1)
如果尝试递归方法:
T(n)= 7 ^ 2 T(n / 7)+ n = 7 ^ 2 [7 ^ 2 T(n / v ^ 2)+ n / 7] + n = 7 ^ 4 T(n / 7 ^ 2)+ 7n + n
= ... = 7 ^(2i)* T(n / 7 ^ i)+ n * [7 ^ 0 + 7 ^ 1 + 7 ^ 2 + ... + 7 ^(i-1)]
当i
增长时,n/7^i
变得更接近1
,如另一个答案所述,T(1)是一个常数。因此,如果我们假设T(1) = 1
,则:
所以
T(n)= 7 ^(2 * log_7(n))* T(1)+ n * [7 ^ 0 + 7 ^ 1 + 7 ^ 2 + ... + 7 ^(log_7(n) -1)]
=> T(n)= n ^ 2 + n * [1 + 7 + 7 ^ 2 + ... +(n-1)] = n ^ 2 + c * n = theta(n ^ 2)
答案 1 :(得分:1)
让n = 7^m
。复发变为
T(7^m) = 49 T(7^(m-1)) + 7^m,
或
S(m) = 49 S(m-1) + 7^m.
同质部分给出
S(m) = C 49^m
一般的解决方法是
S(m) = C 49^m - 7^m / 6
即
T(n) = C n² - n / 6 = (T(1) + 1 / 6) n² - n / 6.
答案 2 :(得分:0)
通常,当没有为递归关系提供基本情况时,将假定基本情况为T(1)= 1或沿这些方向的东西。这样,递归最终终止。
需要考虑的事情-如果递归树无限深,则只能从递归树中获得无限级数。尽管没有在问题中指定任何基本情况,但是您可以在假设存在一个基本情况的情况下进行操作,并且当输入变得足够小而无法定义“足够小”时,递归就会停止。基于此,递归在什么时候停止?从那里开始,您应该可以将无穷级数转换为有限长度的级数,这将为您提供答案。
希望这会有所帮助!