【发布时间】:2013-09-22 16:45:06
【问题描述】:
假设我有这些信息:
N seconds
216 0.00
1296 0.48
7776 89.73
46656 16480.96
如何估计这个函数的增长?
什么是经验增长顺序?
如何估计经验增长顺序?
任何帮助将不胜感激!
【问题讨论】:
-
为什么不将其放入电子表格并生成图表?你已经知道它的本质(线性?指数?)。一旦你获得了质量,就选择数量:找到一个接近的公式(可能再次使用电子表格,例如 libre office 或 gnumeric)。但通常您最关心的是它的性质(另请参阅大 O 表示法)。
-
如果你知道函数的代码,你可以分析它来找出它的复杂性。如果你不这样做,你可以尝试提出一个非线性回归模型。有很多软件可以派上用场。 Excel、R-studio、Statistica 等等。
-
获取更多数据点。我绘制了这个,虽然它显然不是线性的,但它是什么还不清楚。
-
这个问题似乎跑题了,因为它是关于数学的。
-
wikipedia has an explanation:计算
log(t2/t1) / log(n2/n1)。您的第一行是无用的(不能除以零),但对于接下来的三行,我们得到两个区间为 ~ n^2.92 和 ~ n^2.91。所以这是一个稳定的 n^2.9,给予或接受。
标签: algorithm time-complexity curve-fitting estimation