大哦符号和大Theta符号简化

时间:2014-03-27 01:05:00

标签: time big-o complexity-theory big-theta

我有一个家庭作业问题,要求我们证明2n + 5是O(n²)。

这就是我尝试解决的问题:

我选择k = 1并假设n> 1那么 f(n)/ g(n)=(2n + 5)/ n 2< (2n + 5n)/n²= 7n/n²= 7 / n

因此,C等于7 / n 因此,2n + 5 <=(7 / n)(n 2),所以2n + 5 <= 7n,这对于所有n> 1都是正确的。 1。 这就是为什么2n + 5是O(n²)。

我只是不确定这是否正确。我不是百分百肯定,但如果有人能证实那会很棒。

另外,我对另一个要求简化为theta表示法的问题感到困惑:

(X 4.2 )/(1 + X 2)。那只是Θ(x 2.2 ),因为我只是把它评估为无穷大?

另外,x³⋅lg(x)我不知道从哪里开始。

提前致谢!

2 个答案:

答案 0 :(得分:2)

(最后有一个关于你的问题的TLDR,我想我也会给你一些关于big-O的信息)

也许比形式主义更明显的东西:这个O符号的东西应该根据它们的增长来比较函数。如果你根据它们的增长来比较多项式,那么你需要看的就是最高指数(即它们的“度”):如果它们具有相同的度数,那么它们就会以相同的速度增长。如果一个人的学位高于另一个学位,那么学位较高的人比另一个学位的人增长得快。

所以从那个和一些中学数学,我们立即知道2n + 5 = O(n ^ 2)因为任何二次函数(n ^ 2的正因子)在某一点上超过任何线性函数。< / p>

现在回到形式主义;我们还希望捕捉到两个函数“大致同样快速”增长的想法。例如,正增长的所有线性函数大致同样快速增长。为此我们想要引入比例因子c:如果f(n)&lt; = c * g(n),我们说f = O(g)。通过这种缩放,我们立即看到所有线性函数“大致相同地快速增长”:取f(n)= a * n + b和g(n)= k * n + d,然后可以使用缩放因子重新缩放g a / k得到a / k * g(n)= a * n + d * a / k;所以现在a / k * g(n)和f(n)增长同样快,它们的绝对差值减小到一个恒定值。

对于线性和二次函数,我们不能这样做;无论我们如何重新调整线性函数,二次方将总是增长得更快。例如,你可以从它们的衍生物中看出来;线性函数的导数是常数,而二次函数的导数是线性函数,因此二次函数的增长总是增加而线性函数的增长保持不变。

big-O定义的最后一部分是关于“对于所有n&n; n_0对于某些n_0”的位;我们这样做的原因是因为即使g增长得比f快,最初f可能具有更高的值。比较例如g(n)= n ^ 2和f(n)= n + 2 ^ 200。最初,无论您重新缩放多少,f(1)都将大于c * g(1)。我们不想打扰这样的东西,所以我们说“如果在某些时候c * g高于f并且保持在它之上,这对我们的目的来说已经足够了”。那就是“(存在这样的那样)存在n_0,使得对于所有n&gt; n_0:f&lt; = c * g”进来。


现在回到你的问题:你想表明有一个c和一个n_0,所有n&gt; n_0,我们有2n + 5&lt; = c * n ^ 2。现在你必须确保c是一个NUMBER而不是一个函数,所以设置c = 7 / n是不可能的。但你实际上可以选择一个任意的积极的c,看看你是否可以解决不公平问题;我将以c = 3显示它:

2n + 5 <= 3 * n ^ 2

0 <= 3 * n ^ 2 - 2n - 5

现在3 * n ^ 2 - 2n - 5的根是10/6和-1,这意味着在-1之前,不等式成立,在-1和10/6之间我们低于0,并且在10之后6不平等再次成立。这意味着我们选择10/6之后的第一个自然数作为n_0,因此得到n_0 = 2.


关于x ^ 4.2 /(1 + x ^ 2),得到0.5 * x ^ 2.2 = x ^ 4.2 /(2x ^ 2)&lt; x> 4.2 /(1 + x ^ 2)对于x> 1和x ^ 4.2 /(1 + x ^ 2)&lt;所有正x的x ^ 4.2 / x ^ 2 = x ^ 2.2。

对于x ^ 3 lg x,你已经完成了,实际上没有更简单的表达式。你当然可以在不使用对数的情况下给出上限,但是你并不需要。

答案 1 :(得分:1)

2n + 5是O(n ^ 2)

如果你选择k = 1,那么你需要找到n0这样,对于所有n&gt; n0,n ^ 2> 2n + 5.例如n0 = 4。 另一种方法是当n - >时评估lim 2n + 5 / n ^ 2。 INF。因为lim(n-> inf)2n + 5 / n ^ 2 = 0,我们可以说2n + 5是o(n ^ 2)(小o),这意味着大O符号2n + 5是O(n ^ 2)。

(x ^(4.2))/(1 + x ^ 2)可以合理地说它是Theta(x ^ 2.2),因为你可以找到常数k1,k2这样所有x> x0,k1 * x ^ 2.2&lt; =(x ^(4.2))/(1 + x ^ 2)&lt; = k2 * x ^ 2.2。

<强>的x ^ 3 * LG(x)的

最合理的答案是x ^ 3 * lg(x)是O(x ^ 4),因为lg(x)是O(x)和大O符号product property

相关问题