功能增长带来的问题

时间:2010-09-01 15:44:57

标签: big-o

我正在阅读Kenneth H. Rosen撰写的“离散数学及其应用”一书 我现在正处于“功能的成长”一章,并尝试练习。[第5版第142页]

我被困在这里:

确定这些函数是否在O(x ^ 2)[(x的平方的大哦)

[1] f(x)= 2 ^ x,

[2] f(x)=(x ^ 4)/ 2

[3] f(x)= floor(x)* floor(x)

我不能做第一个。有人请帮忙吗?

我完成了第二和第三,如下所示。请检查并发表评论。

[2]

  

如果f(x)=(x ^ 4)/ 2对于x> 0(x ^ 2)则为0。 k(k =任何常数,C =任何常数)

___then |(x^4)/2| <= C|.(x^2)| for x > k

___or |(x^2)| <= 2C for x > k

___or x <= sqrt(2C) for x > k

___or x<= C1 [ C1 = sqrt(2c) = Constant]

___but this contradicts with x > k where k is any constant

so f(x) is not O(x^2)

[3]

 f(x) = floor(x) * floor(x) <= x * x for x > 1
__or f(x) <= x^2 for x>1
__so f(x) is O(x^2) taking C = 1 and k = 1 as witness

请在第一个帮助我。

1 个答案:

答案 0 :(得分:1)

当p(x)<= a * g(x)+ b对于大x并且固定a和b时,

f(x)恰好在O(g(x))中。基本微积分的一种方法是划分并取极限:

lim(f(x)/ g(x))为x-> inf

如果这是零,则f(x)严格地比x ^ 2慢。如果它是任何其他有限数,那么这两个函数在同一个大O类中(并且该数字是你的C-见证)。如果它是无穷大,则f(x)不是O(x ^ 2)。

更简单的方法是查看x的最大幂(对于多项式)或者只知道对于所有大于1的固定k,k ^ x比x ^ k增长得更快。 (提示:这是你的答案。)

Big-O符号是你应该能够注意的东西。事实上,如果你现在不熟悉代数函数之间的关系,那么你最好放弃算法类并首先切换到数学课,直到你在微积分中取得好成绩。然后,使用big-O表示法你将毫无困难。