📜  循环关系练习集

📅  最后修改于: 2021-09-27 06:20:52             🧑  作者: Mango

先决条件——算法分析 |第 1 组、第 2 组、第 3 组、第 4 组、第 5 组

Qu-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 取 log 两边 log f3 = n log(1.000001),我们可以写成 log f3 = ?n*?n log(1.000001) 和 ?n > log(1.000001)。
所以,正确的顺序是f2> f4> f3> f1。选项(b)是正确的。

Qu-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) 是正确的。

Qu-4。 Master定理可以应用于以下哪个递推关系?
(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) = aT(n/b) + f (n) (除法函数) & T(n)=aT(nb)+f(n) (递减函数)
选项(a) 是错误的,因为应用master 定理,函数f(n) 应该是多项式的。
选项 (b) 是错误的,因为为了应用主定理 f(n) 应该是单调递增的函数。
选项 (d) 不是上述类型,因此正确答案是 (c) 因为 T (n) = T (n-2) + 2n^2 + 1 将被视为 T (n) = T (n-2 ) + 2n^2 即呈递减函数形式。

Qu-5。 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)是正确的。