【问题标题】:Asymptotic notation big(O) and Big(Omega)渐近符号 big(O) 和 Big(Omega)
【发布时间】:2024-09-29 15:05:01
【问题描述】:

f(n) = 6*2^n + n^2

大(O) = 2^n

大(欧米茄)= 2^n

在上面的等式中,big(O) 和 big(Omega) 具有相同的值。如果大(O)是上限,大(欧米茄)是下限,那么大(欧米茄)= n^2。为什么两者具有相同的价值?

【问题讨论】:

  • 你确定不是 6 * 2^n 吗?如果是 62^n,那么这是错误的,恕我直言。
  • @AmiTavory thanx. 更正了。
  • 简短回答:因为与 2^n 相比,n² 可以忽略不计。
  • 这不属于 math.stackexchange.com 吗?
  • @MayeulC 这不是编程问题,但它是理解算法的基础。

标签: algorithm big-o


【解决方案1】:

确实OΩ分别是上下界,但更类似于 而不是 >。就像有可能同时 a ≥ ba ≤ b (没有矛盾),一个函数也可以同时是 OΩ 的不同函数(实际上,这是定义 Θ 的方法之一)。

这里,对于足够大的n

  • 6 2n + n2 ≤ 12 2n 所以 6 2 n + n2 最多增长(直到一个乘法常数),就像 2n 一样(它是 O 的)。

  • 相反,6 2n + n2 ≥ 0.1 2n 所以 6 2n + n2 至少像 2n 增长(直到一个乘法常数) > 确实(它是它的Ω)。

请注意,您不必使用相同的乘法常数。结论是 6 2n + n2 = Θ( 2n)

【讨论】:

  • 你把 n² 和 2^n 搞混了。
  • 我觉得是6 *2^n,其实差别很大。
  • @MayeulC 谢谢,我的回答有误,但您的评论让我在更正过程中遇到了麻烦。现在好了吗?再次感谢。
  • @AmiTavory,是的,这好多了:) 抱歉,我在这里发表了多余的评论,当我加载页面时,YvesDaoust 的评论不在那里。