Math f(n)=n^5+2^log(n)的大O应该是什么?

Math f(n)=n^5+2^log(n)的大O应该是什么?,math,big-o,logarithm,Math,Big O,Logarithm,我遇到了一个问题,我必须为函数fn=n^5+2^logn选择正确的大O。。。 我试着输入大的值,发现n^5与2^logn相比增长显著。。。但后来有人告诉我指数函数比其他函数增长得更大。。。我又迷糊了。。。老实说,我认为2^logn不是一个指数函数。。。但由于我的对数概念很弱,我无法证明 我只想有人告诉我,是的,n^5大于2^logn,这样我就可以证明2^logn不是指数函数 提前谢谢 2^logn=2/e^logn*e^logn=a^logn*n其中a=2/e2^1/5,它涵盖了2,e,10的常

我遇到了一个问题,我必须为函数fn=n^5+2^logn选择正确的大O。。。 我试着输入大的值,发现n^5与2^logn相比增长显著。。。但后来有人告诉我指数函数比其他函数增长得更大。。。我又迷糊了。。。老实说,我认为2^logn不是一个指数函数。。。但由于我的对数概念很弱,我无法证明

我只想有人告诉我,是的,n^5大于2^logn,这样我就可以证明2^logn不是指数函数

提前谢谢

2^logn=2/e^logn*e^logn=a^logn*n其中a=2/e<1假设log是自然对数

因此fn=n^5+2^logn [编辑]在任意基数b的对数的一般情况下,使用2=b^log_b2可以得出:

    2^log_b(n) = (b^log_b(2))^(log_b(n))
               = b^(log_b(2)*log_b(n))
               = (b^log_b(n))^log_b(2)
               = n^log_b(2)
               = n^(1/log_2(b))
因此fn=n^5+log\u bn=O n^5+n^1/log\u 2b=O n^max5,1/log\u 2b

特别是,对于log_2b>1/5,fn=On^5⇔ b>2^1/5,它涵盖了2,e,10的常用对数基。

O2logn=On-这直接来自对数的定义

更正式地说:

fn=2logn

log2fn=log22logn=lognlog22=log2n ==>fn=n

==>O2logn=On


==>On5+2logn=On5+n=On5

认为log是自然算法的假设既不正确也不相关。当谈到复杂性时,基数是不相关的,为了计算,可以假设任何基数。具体来说,这里的基数2是cs相关主题中常用的基数,它会立即导致2^logn=n。@SomeWittyUsername在这样的情况下,当对数是指数时,对数的基数对于复杂性分析来说确实很重要。例如,10^log10n是n,但10^log2n大约是n^3.3。第一个是关于;第二个不是。在这个特殊的例子中,不管基数是2、10还是e,我们碰巧得到了相同的答案,但总的来说,基数并不是无关紧要的。@MarkDickinson当然,你是对的。我应该更精确一点——我的目的只是指出,对于任何常数的基数,Ologn都是相同的。@SomeWittyUsername对数的基数与a^log\u bn形式的指数有关,尽管在这个特定的例子中,2和e恰好得到了相同的最终答案。至于这里假设的基础是什么,只有OP可以澄清这一点。在一个编程站点上,数学标签是这样的,假设自然对数是自然的,因为这是日志在Mathematica、JavaScript、C++等中默认的意思。这是一个公平的假设,OP可能是在解决复杂的练习,但这只是一个假设。问题和标签中都没有提到复杂性,渐近行为也不限于复杂性分析。非常感谢。。。只是确认一下。。2^logn=n对吗?是的,在复杂性的背景下。在复杂度范围之外,日志应该以2为基数,以使其正确。正如下面@MarkDickinson所正确指出的,对于任何基数>2,2^logn>n的情况,实际上,这对您的最终结果并不重要result@SomeWittyUsername对于任何大于2,2^logn>n的基数,我猜您的意思是2^logn