递归关系:T(n)= T(ceil(n / 3))+ T(ceil(3n / 5))+ 100 * n

里兹万·艾哈迈德(Rizwan Ahmed)

我的复发关系为:

T(n)= T(上限(n / 3))+ T(上限(3n / 5))+ 100 * nT(1)= 1

我正在尝试使用递归树方法解决它,但是我不知道要处理递归关系中的上限函数。

那么,如何找到T(n)的最紧密渐近界?

我的天啊

您可以使用Akra-Bazzi定理。为此,您可以使用这样的事实,ceil(x) = x + 1 - {x}即that{x}是x的小数部分。

因此,您可以重写复杂度术语,例如:

T(n) = T(n/3 + 1 - {n/3}) +‌ T(3n/5 + 1 - {3n/5}) + 100n

因此,该定理中的参数为:

a1 = a2 = 1, 
b1=1/3, b2 = 3/5, 
h1(n) = 1 - {n/3}, h2(n) = 1 - {3n/5},
g(n) = 100n

正如你所看到的0 < b1, b2 < 1a1, a2 > 0h1, h2 < 1,和g(n)是线性的。这意味着定理的所有要求都成立了。

现在,是时候找到p这样的东西了:

(1/3)^p + (3/5)^p = 1 => p ~ 0.9

因此,T(n) = Theta(n^p (1 + int(100 u/u^{p+1}, 1, n))为了简化该术语,我们需要计算积分:

int(100 u/u^{p+1}, 1, n) = 100 * int(1/u^p, 1, n) = 100 (n^{1-p}/(1-p) - 1)

因此,复杂度的简化项是T(n) = Theta(n)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

解决递归关系:T(n)= 3T(n / 5)+ lgn * lgn

您能帮我解决递归关系T(1)= 5,并且对于所有n> = 2,T(n)= 2T(n-1)+(3 * n + 1)

如何求解T(n)= T(n / 4)+ T(3n / 4)+ nlogn

求解递归T(floor [n / 2])+ T(ceil [n / 2])+ n-1

如何解决T(n)的递归= 2 * T(n / 3)+ 3/2 * T(n / 4)+ 5 * T(n / 2)+ Theta(n ^ 2),p = 2 ,574359

计算递归关系T(n)= T(n / log n)+Θ(1)

递归关系:T(n) = n*T(n/2)

对于6 T(1)= 1的n次幂,计算机科学数学中的递归关系T(n)= 6T(n / 6)+ 2n + 3?

求解递归关系:T(n)= T(n-1)+ T(n / 2)+ n

3n + 1给出负数

3n + 1在线法官计划

递归关系的中间步骤T(n)= 2T(n / 2)+ n / log(n)

计算递归关系T(n)= sqrt(n * T(sqrt(n))+ n)

如何递归求解T(n)= 5T(n / 2)+ n ^ 2,T(1)= 2

T(0) = 1, T(1) = 0, T(n ) = 2* T(n-2) 的递归关系

如何解决这个复杂度方程,T(n)= T(n-3)+ T(n-5)

求解递归关系:T(n)= T(n-1)+ n-1

计算递归关系T(n)= T(n / [(log n)^ 2])+Θ(1)

O的大记号是什么(logn + 3n)

Uva 3n + 1问题-错误的Python

生成随机输出3n + 1 pblm

来自UVa 3n + 1的错误答案

如何使用大师定理求解此递归T(n)= 5T(n / 2)+ n ^ 2 lg n?

如何使用递归求解T(n)= 5T(n / 2)+ O(nlogn)

如何解决递归T(n)= 5T(n / 7)+ logn?

1+3+5...+n 的總和直到總和超過 100

递归关系的时间复杂度:T(n) = nT(n^1/2)+ O(1)

如何使用递归树求解方程T(n)= 5T(n / 5)+ sqrt(n),T(1)= 1,T(0)= 0?

递归关系与n成反比