我正在阅读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
请在第一个帮助我。
答案 0 :(得分:1)
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表示法你将毫无困难。