给出::T(n) = T(n/10) + T(an) + n
代表a
(我对其价值一无所知),如果T(n) = 1
则为n < 10
。 / p>
我想检查以下是否可行(对于某些a
值,我想找到最小的 a
):
对于每个
c > 0
,都有n0 > 0
,这样对于每个n > n0
,T(n) >= c * n
或换句话说T(n)= omega(n)
感谢您的帮助。
答案 0 :(得分:2)
假设<9/10。令c = max(1 /(9/10-a),1),使得c≥1和1 / c≤9/10-a。然后对于1≤n <10,
T(n) = 1 ≤ n ≤ cn.
归纳地,对于n≥10,
T(n)
= T(n/10) + T(an) + n
≤ cn/10 + can + n
= c(1/10 + a + 1/c)n
≤ c(1/10 + a + 9/10 - a)n
= cn.
现在假设a = 9/10。对于1≤n <10,我们知道log10 n <1,因此
T(n) = 1 > n log10 n - n.
归纳地,对于n≥10,
T(n)
= T(n/10) + T(9n/10) + n
> (n/10) log10 (n/10) - (n/10) + (9n/10) log10 (9n/10) - (9n/10) + n
= (n/10) log10 (n/10) + (9n/10) log10 (9n/10)
> (n/10) log10 (n/10) + (9n/10) log10 ( n/10)
= (n/10) (log10 n - 1) + (9n/10) (log10 n - 1)
= n log10 n - n.
给定c> 0,选择n0使得log10 n0-1 = c,即n0 = exp10(c + 1)。然后对于所有n> n0,
T(n) > n log10 n - n = n(log10 n - 1) > n(log10 n0 - 1) = cn.
答案 1 :(得分:1)
对于每个c> 0,存在n0> 0,因此对于每个n> n0,T(n)> = c * n
我们假设T(n)> = cn对于a和c> 0都成立。
通过用不等式中的递归替换并求解a,您将得到:
T(n) >= c*n
(c*n/10) + (c*a*n) + n >= c*n
a >= (9/10) - (1/c)
由于我们期望的结果是对所有c都成立(正式应用限制c趋于无穷大,这是RHS最大化的地方),因此我们得到> =(9/10)。因此,a
的最小值为(9/10),它将满足所有c的T(n) >= c*n
。
在此之后,您可以通过归纳证明确实如此。
答案 2 :(得分:0)
在每个函数中,您需要找到方程式的最高影响变量。从总体上讲,影响此功能的最小N可以是任何常数。