繁体   English   中英

比较指数函数的增长率?

[英]Comparing growth rate of exponential function?

假设我们有两个函数f(n)= 2 2 n + 1和g(n)= 2 2 n 我想使用两种不同的方法比较这两个函数的增长率。

方法一:计算比率

让我们定义t(n)= f(n)/ g(n)。 然后

t(n)= f(n)/ g(n)

= 2 2 n + 1/2 2 n

= 2 2 n + 1-2 n

= 2 2 n

因此,我们假设f(n)的增长快于g(n)。

方法二:使用对数

如前所述,令t(n)= f(n)/ g(n)。 现在,让我们以两边的两个日志为基础:

lg t(n)= lg(f(n)/ g(n))

= lg(2 2 n + 1/2 2 n

= lg 2 2 n + 1 -lg ​​2 2 n

= 2 n + 1-2 n

现在,让我们以双方的两个日志为基础:

lg lg t(n)=(n +1)lg 2 / n lg 2

=(n + 1)/ n

忽略常数项,我们得到lg lg t(n)= 1,这是一个常数,因此f(n)和g(n)应该具有相同的增长率。

为什么使用方法二会得到错误的答案?

您出问题的地方:“忽略常数项”。

t(n)=(n + 1)/ n = n / n + 1 / n = 1 + 1 / n> 1

我认为您的错误是假设以下情况:

如果对数log f(x)/对数log g(x)是常数,则f(x)=Θ(g(x))。

这是一个简单的反例。 设f(x)= x 2和g(x)= x。 然后

日志日志f(x)=日志日志x 2 =日志(2日志x)=日志2 +日志log x

日志日志g(x)=日志日志x

在这里,日志log f(x)和日志log g(x)只是一个常数(即log 2)不同,但是显然f(x)和g(x)以相同的速率增长并非正确。 换句话说,在取两个函数的增长率的对数后忽略常数是不安全的。

您的逻辑中还有第二个错误。 如果计算f(n)/ g(n),则得到

2 2 n +1 / 2 2 n

= 2 2 n + 1-2 n

= 2 2 n

如果您两次记录此日志,则会得到

lg lg 2 2 n

= lg 2 n

= n

因此,比率的对数对数甚至不是(n +1)/ n; 取而代之的是n,它仍趋于无穷大。 这也将告诉您f(n)的增长比g(n)快得多。

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM