确定情节的渐近增长率

时间:2018-03-18 18:58:21

标签: plot big-o asymptotic-complexity

我试图确定下图的渐近增长率,其具有对数x轴(基数2)和线性y轴。这对我来说似乎是次对数的,但是如何确切地确定速率(在渐近复杂度的大O符号中)?original plot 上面的原始图,在蓝线下面的一个是sqrt(),绿色log()和最后一个原始函数

the blue line is now sqrt(), green log() and the last one the original function

1 个答案:

答案 0 :(得分:2)

假设您可以展示常数c,使f(2^(i+1))/f(2^i)) = c为每个整数i,您可以考虑以下事实

f(2^i) = c.f(2^(i-1)) = c^i.f(1)

因此对于任何整数k,

f(k) = f(2^log2(k))
     = c^log2(k).f(1)
     = k^log2(c).f(1)

我尝试估算比率f(2^(i+1)) / f(2^i)

的几个值
f(2^12) / f(2^11) ~= 0.250 / 0.175 ~= 1.43
f(2^11) / f(2^10) ~= 0.175 / 0.125 ~= 1.4
f(2^10) / f(2^9)  ~= 0.125 / 0.085 ~= 1.47
f(2^9)  / f(2^8)  ~= 0.085 / 0.070 ~= 1.21

对于x的较低值,读取函数的值变得太难了。

我不清楚你是否真的有一个恒定的比率f(2^(i+1))/f(2^i)(你可能需要x > 2^13的更多数据),但是,作为一个例子,如果你选择采用{的值{1}},您最终得到的功能为c = 1.4,即f(k)/f(1) ~= k^0.49 ~= sqrt(k)将为"关闭"到平方根函数。

<强>声明: 请采取&#34;关闭&#34;这里1/f(1).f对于x^(0.5 +/- epsilon来说,epsilon > 0只是远离sqrt(x)(我的意思是 - 两个函数之间的差异可以任意大,因为x -> +Inf。 })。