📜  递归关系练习集

📅  最后修改于: 2021-04-24 05:42:21             🧑  作者: Mango

先决条件–算法分析|设置1,设置2,设置3,设置4,设置5

Que-1。解决以下递归关系?
T(n)= 7T(n / 2)+ 3n ^ 2 + 2
(a)O(n ^ 2.8)
(b)O(n ^ 3)
(c)?(n ^ 2.8)
(d)?(n ^ 3)

解释 –
T(n)= 7T(n / 2)+ 3n ^ 2 + 2
从上面的公式可以看出:
a = 7,b = 2,f(n)= 3n ^ 2 + 2
因此,f(n)= O(n ^ c),其中c = 2。
它属于大师定理的情况1:
logb(a)= log2(7)= 2.81> 2
从主定理的第一种情况可以得出,T(n)=?(n ^ 2.8)并暗示O(n ^ 2.8)以及O(n ^ 3)。
因此,选项(a),(b)和(c)是正确的选项。

队列2。按渐近(big-O)复杂度的降序对以下函数进行排序:
f1(n)= n ^?n,f2(n)= 2 ^ n,f3(n)=(1.000001)^ n,f4(n)= n ^(10)* 2 ^(n / 2)
(a)f2> f4> f1> f3
(b)f2> f4> f3> f1
(c)f1> f2> f3> f4
(d)f2> f1> f4> f3

解释 –
f2> f4是因为我们可以写f2(n)= 2 ^(n / 2)* 2 ^(n / 2),f4(n)= n ^(10)* 2 ^(n / 2)清楚地表明f2> f4
f4> f3是因为我们可以写f4(n)= n ^ 10。?? 2?^ n = n10。(1.414)n,清楚地显示f4> f3
f3> f1:
f1(n)= n ^?n取日志双方日志f1 =?n log n
f3(n)=(1.000001)^ n取日志双方日志f3 = n log(1.000001),我们可以写成log f3 =?n *?n log(1.000001)和?n> log(1.000001)。
因此,正确的顺序是f2> f4> f3> f1。选项(b)是正确的。

队列3。 f(n)= 2 ^(2n)
以下哪项正确表示上述函数?
(a)O(2 ^ n)
(b)?(2 ^ n)
(c)?(2 ^ n)
(d)这些都不是

说明– f(n)= 2 ^(2n)= 2 ^ n * 2 ^ n
选项(a)表示f(n)<= c * 2n,这是不正确的。
选项(c)表示c1 * 2n <= f(n)<= c2 * 2n,满足下限但不满足上限。
选项(b)表示c * 2n <= f(n)满足此条件,因此选项(b)是正确的。

-44。大师定理可以应用于以下哪个递归关系?
(a)T(n)= 2T(n / 2)+ 2 ^ n
(b)T(n)= 2T(n / 3)+ sin(n)
(c)T(n)= T(n-2)+ 2n ^ 2 +1
(d)这些都不是

说明–主定理可以应用于以下类型的递归关系
T(n)=在(N / B)+ F(N)(分割函数)T(n)=在(NB)+ F(n)的(递减函数)
选项(a)是错误的,因为要应用主人定理,函数f(n)应该是多项式。
选项(b)是错误的,因为要应用主定理f(n)应该是单调递增函数。
选项(d)不是上述类型,因此正确答案是(c),因为T(n)= T(n-2)+ 2n ^ 2 +1将被视为T(n)= T(n-2 )+ 2n ^ 2,形式为递减函数。

-55。 T(n)= 3T(n / 2 + 47)+ 2n ^ 2 + 10 * n – 1/2。 T(n)将是

(a)O(n ^ 2)
(b)O(n ^(3/2))
(c)O(n log n)
(d)这些都不是

说明–对于n较高的值,n / 2 >> 47,因此我们可以忽略47,现在T(n)为
T(n)= 3T(n / 2)+ 2 * n ^ 2 + 10 * n – 1/2 = 3T(n / 2)+ O(n ^ 2)
应用主定理,这是主定理T(n)= O(n ^ 2)的情况3。
选项(a)是正确的。