Math 8T(n/2)+n^2的树方法

Math 8T(n/2)+n^2的树方法,math,tree,big-o,Math,Tree,Big O,我正试图解决这个问题,但我想我还不知道如何正确地解决它。在这种类型的练习中,我做的第一件事是取行中较大的值,在这种情况下是n^2,然后将其除以多次,这样我就可以找到值之间的关系。找到关系后,我尝试用数学方法找到它的值,然后作为最后一步,我将结果乘以根。在这种情况下,结果应为n^3。怎么可能? 不幸的是,@vahidreza的解在我看来是错误的,因为它与主定理相矛盾。根据主定理a=8,b=2,c=2。所以log_ba=3,所以log_ba>c,这是一个由子问题支配的递归,所以答案应该是Tn=}n^

我正试图解决这个问题,但我想我还不知道如何正确地解决它。在这种类型的练习中,我做的第一件事是取行中较大的值,在这种情况下是n^2,然后将其除以多次,这样我就可以找到值之间的关系。找到关系后,我尝试用数学方法找到它的值,然后作为最后一步,我将结果乘以根。在这种情况下,结果应为n^3。怎么可能?
不幸的是,@vahidreza的解在我看来是错误的,因为它与主定理相矛盾。根据主定理a=8,b=2,c=2。所以log_ba=3,所以log_ba>c,这是一个由子问题支配的递归,所以答案应该是Tn=}n^3,而不是@vahidreza拥有的Om^2+1/3

主要问题可能在这一声明中:

你也知道这棵树有8米的高度。因为在每一级,你都要把数字除以8

让我们试着正确地解决它:

在第0级,你有n^2,我更喜欢从0开始计数,因为它简化了一点符号

在第一个级别上,您有8个n/2^2的节点,或者总共有8个*n/2^2

在第二个级别上,您有8*8个n/2^2^2节点,或者总共有8^2*n/2^2^2^2节点

在第i级上,有8^i个节点为n/2^i^2,或者总共有8^i*n/2^i^2=n^2*8^i/2^2*i=n^2*2^i

在每个级别,值n除以2,因此在级别i,值为n/2^i,因此将有log_2n级别。所以你需要计算i的和,从0到n^2*2^i的logu 2n。这是一个比为2的几何级数,所以它的和为

Σ (n^2 * 2^i) = n^2 * Σ(2^i) = n^2 * (2^(log_2(n)+1) - 1)/2
因为我们讨论的是}/O,我们可以忽略常数,所以我们需要估计

n^2 * 2^log_2(n)
显然,2^log_2n就是n,所以答案是

T(n) = Ө(n^3)

正如主定理所预测的那样。

现在还不清楚你想做什么,但如果我的猜测是正确的,您可能应该重新阅读回答大多数此类问题的。不幸的是,我需要使用tree方法解决它。它实际上不需要是树,因为只有一个递归调用-tree方法仅对多个不同的调用有用。但是如果你不得不使用它,你的分支数目就错了——应该是8个。你是对的。我犯了一个可怕的错误。我删除了我的答案非常感谢,你解决了我的问题!还有一个问题:在这个例子中,我在每一个级别上除以两,因为我有Tn/2,但是如果我有Tn=Tn/3+T2n/3+n呢?在这里,我将我的树分成两个具有两个不同值的分支