不同渐近符号的相乘和相加

发布于 2024-12-09 08:23:13 字数 181 浏览 3 评论 0 原文

有谁知道如何进行这样的计算 示例:

O(n^2) + THETA(n) + OMEGA(n^3) = ?

O(n^2) * THETA(n) * OMEGA(n^3) ) = ?

一般来说,如何对不同的渐近符号进行加法和乘法?

does anyone knows how to perform such calculations
Example:

O(n^2) + THETA(n) + OMEGA(n^3) = ?

or

O(n^2) * THETA(n) * OMEGA(n^3) = ?

In general, how to add and multiply different asymptotic notations?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

残月升风 2024-12-16 08:23:13

O 给出上限

Ω 给出下限

θ 给出渐近界

维基百科有一个很好的图表来解释这些。

因此,这些在一般情况下确实没有可比性。

对于第一个案例,

O(n^2) + Θ(n) + Ω(n^3)

我们首先处理 O。第一项告诉我们 O(n^2),第二项告诉我们 O(n)。仅基于这两个,我们就知道到目前为止我们有 O(n^2) 作为上限。然而,第三项没有告诉我们任何关于上限的信息!所以我们真的无法得出关于O的任何结论。

这里的要点是,Oθ 只提供有关 O 的信息,以及 Ωθ 的信息 仅向您提供有关Ω 的信息。这是因为 θ(g(n)) 意味着 O(g(n))Ω(g(n)),所以我们可以将 θ 更改为 OΩ 中适合给定分析的那个。

然而,这三者在一起,甚至只是 OΩ,都会让你一无所知,因为 OΩ 都不暗示关于对方的任何事情。

O gives an upper bound;

Ω gives a lower bound;

Θ gives an asymptotic bound;

Wikipedia has a nice chart to explain these.

Therefore these really aren't comparable in general.

For your first case,

O(n^2) + Θ(n) + Ω(n^3)

Let's first tackle O. The first term tells us O(n^2), and the second term tells us O(n). Based on just these two, we know so far we have O(n^2) for an upper bound. However, the third term tells us nothing whatsoever about an upper bound! So we really cannot conclude anything about O.

The point here is that O and Θ gives you information about O only, and Ω and Θ gives you information about Ω only. This is because Θ(g(n)) implies both O(g(n)) and Ω(g(n)), so we can change Θ into whichever of O and Ω is appropriate for the given analysis.

However, the three together, or even just O and Ω, leaves you clueless since neither O nor Ω implies anything about the other.

从来不烧饼 2024-12-16 08:23:13

你不能。假设您知道 a > 0b < 10. .那么你就没有关于a+b的信息。它可以是任何东西。

Big-O 和 Big-Omega 的功能类似。

You can't. Suppose you know that a > 0 and b < 10. Then you have no information about a+b. It could be anything.

Big-O and Big-Omega act similarly for functions.

残月升风 2024-12-16 08:23:13

虽然我的上述答案对于一般函数和界限是正确的,但在计算机科学中我们通常只考虑正函数。因此,在你的第一个例子中,我们有:

O(n^2) + Theta(n) + Omega(n^3) = Omega(1)+Theta(n)+Omega(n^3) = Omega(n^3)

这源于函数都是正的假设。也就是说,所有函数都是Omega(1)

While my above answer is correct for general functions and bounds, in computer science we typically consider only positive functions. Thus in your first example, we have:

O(n^2) + Theta(n) + Omega(n^3) = Omega(1)+Theta(n)+Omega(n^3) = Omega(n^3)

This stems from the assumption that the functions are all positive. That is, all functions are Omega(1).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文