【问题标题】:How to arrange the functions in the order of growth rate? So that f(n) is O(g(n))如何按增长率顺序排列功能?所以 f(n) 是 O(g(n))
【发布时间】:2019-01-27 19:50:33
【问题描述】:

我有以下需要按增长率排序的函数。但是如何证明函数 g(n) 在列表中紧跟在函数 f(n) 之后,那么 f(n) 应该是 O(g(n))?

我尝试为 n 键入一些值(例如 10、1000、5000),它从 1000 变为 5

我怎样才能渐近地证明这个顺序?

【问题讨论】:

  • 我投票结束这个问题,因为它是一个数学问题,而不是一个计算机编程问题。 (使用O(n)的定义:计算极限f(n)/g(n)。)
  • 使用O的定义。

标签: performance big-o complexity-theory discrete-mathematics


【解决方案1】:

任何正多项式函数的增长速度都比任何多项式函数都快,也就是说,对于任何 a > 0,lg^b(n) = o(n^a)(注意小 o)

这意味着 f2 >> f4

其他一切(指数级)都比 f2 增长得更快。

比较 f1 = 10^nf3 = n^n 两边取log比较nlog10nlogn。显然,f3 >> f1(log10 是一个常数)。

比较 f3 = n^nf5 = 2^(log^1/2(n)) 两边取 log 比较 nlogn(log^1/2(n))log2f3 >> f5(两边平方,或者使用以下事实:任何正多项式函数的增长速度都比任何多项式对数函数都快)

剩下的就是比较 f5 = 2^(log^1/2(n))f1 = 10^n。 两边取 log 比较 (log^1/2(n))log2nlog10f1 >> f5

使用所有这些事实可以得出结论,f4 。或者,正如其他人指出的那样,您可以通过计算限制来比较它们。

【讨论】:

    【解决方案2】:

    请看下面的答案,由于功能和权力,在图片中发布。

    【讨论】:

      猜你喜欢
      • 2022-01-20
      • 2012-04-13
      • 2012-09-29
      • 2020-08-05
      • 1970-01-01
      • 1970-01-01
      • 2021-04-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多