【问题标题】:Big-Oh: Is f(n) = 3^n in O(g(n)) = 10^n?Big-Oh:在 O(g(n)) = 10^n 中是 f(n) = 3^n 吗?
【发布时间】:2016-04-06 01:08:36
【问题描述】:

我可以证明这一点,但我从概念上不明白为什么 3^n 在 O(10^n) 中。我错了吗?

【问题讨论】:

  • 3^nO(10^n) 中,因为它的增长速度不会比10^n 快。当然,这不是一个严格的界限。 3^n 也在 O(3^n) 中,这是一个紧密的界限。
  • h(n) = 1i(n) = n 也在O(10^n)

标签: math big-o complexity-theory


【解决方案1】:

从概念上讲,指数的底数越大,函数的增长越快。

Big-O 给了我们一个上限;也就是说,给定两个函数f(n)g(n),如果n 的所有值都高于某个阈值(除了常数倍数等一些小细节),g(n) 支配f(n),那么我们可以说f(n) = O(g(n)).

现在,对于任何n >= 0,应该清楚10^n 至少与3^n 一样大(但大多数情况下要大得多)。

请注意,说3^n = O(10^n) 并不是特别有用。这绝不是一个严格的限制。这两个功能的增长率截然不同。 3^n 的一个更有效的界限是它本身——也就是说,3^n = O(3^n)

【讨论】:

  • 是的,这正是我的想法,因为边界不是“紧密”的,如果它被认为是 o(g(n)),我会感到困惑!我只是想确认它仍然是正确的,即使它没有用。
  • 是的,确实是正确的,但是没有用。我们也可以说1 = O(10^n)。虽然这是真的,但它真的没用; order 1 函数具有恒定的运行时间,而 order 10^n 函数的运行时间呈指数级下降。
  • @MH1993 请注意,在使用o(小哦)和O(大哦)编写时要小心。它们意味着两个不同的东西,o 表示界限肯定不紧,O 表示它可能会也可能不会。 o<O<=
猜你喜欢
  • 2022-01-20
  • 1970-01-01
  • 2012-09-29
  • 2020-08-05
  • 1970-01-01
  • 2012-04-13
  • 2021-04-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多