我正试图解决这种递归关系。这是我到目前为止所尝试的,但我认为我错了。我真的很感激一些指导。
这是我试图解决的复发关系: - 2T(n ^ 1/2)+ C
T(n) = 2T(n^1/2) + C
2((2T(n^1/4)+C) + C
>> 4T(n^1/16) + 3C
>> 8T(n^1/256) + 6C
所以我可以将它表达成这个代数表达式: -
(2^k)T(n^(1/2^k)) + 2k
因此,为了解决递归关系,我只想说
n^(1/(2^k)) = 1
Therefore:- 2k = log (base n) 1
But this makes k = 0....
我不认为这是正确的。请告诉我,我很乐意得到一些帮助!
答案 0 :(得分:0)
我的尝试。 (警告:我不确定在这里做替换是正确的。让我们试一试。)
假设T(x) = 1
代表x< 2
与T(1)是禁止的(参见我的评论),所以也许我们可以尝试计算T(2)
T(2) = 2 * T(sqrt(2)) + C = 2 + C
现在我们搜索k n^(1/2^k) = 2 + C
1/(2^k) = log_n(2 + C) [base n log]
1/log_n(2 + C) = 2^k
log_(2 + C) n = 2^k [1 / log_a b = log_b a]
lg n / lg (2 + C) = 2^k [change-of-base]
c2 lg n = 2^k [since lg (2 + C) is fixed we put c2 = 1 / lg (2 + C)]
k = lg (c2 * lg n) = (lg c2) + lg lg n
k = c3 + lg lg n [since lg c2 is fixed]
现在我们将k替换为T(N) = 2^k + 2k
并找到
T(n) = 2^c3 * lg n + 2*c3 + lg lg n
现在,如果我们把togheter
T(n) = c1 lg n + c2 lg lg n
其中c1和c2是固定的,与我们上面使用的不同。