2014-03-25 62 views
-7

我如何找到答案? 即使是大O也足够了。我发现的所有线索都是复杂的数学思想。任何帮助?答案是:n! =Θ()?

什么是解决这一问题的正确的做法?递归树似乎太多工作

目标为n之间进行比较的!和n^LOGN

+2

咦? 'N! =Θ(n!)'。你是否正在寻找其他方式来说“n!”? – Sneftel

+0

'O(n!)'是个不好的答案吗?你也不能说一个函数等于'O',因为'O'表示一类函数,并且这种相等是无意义的。说属于更合理。 – luk32

+0

@ luk32“=”在这里非常常用。根据[维基百科](http://en.wikipedia.org/wiki/Big_O_notation) - “请注意”=“不是用来表示”在其正常数学意义上等于“,而是更通俗”是“”。 – Dukeling

回答

3

Θ(n!)是完全正常的,有效的复杂性,所以n! = Θ(n!)

正如尼古拉斯指出的那样,这是每一个功能实际上是真的,但是,这样的事情
6x² + 15x + 2,你可以Θ(6x² + 15x + 2),但它通常是首选简单地写Θ(x²)来代替。


如果要比较两个功能,简单地绘制它WolframAlpha可能被视为足以看出Θ(n!)功能的增长更快。

在数学上确定的结果,我们可以采取双方的log,使我们log (n!)log nlog n = log n . log n = (log n)2

然后,由于log(n!) = Θ(n log n)n log n > (log n)2对于任何大的n,我们可以推导出Θ(n!)增长更快。这个派生可能不是微不足道的,我略微不确定它是否真的有可能,但是我们已经超出了Stack Overflow的范围(如果你想了解更多细节,请试试the Mathematics site)。

+2

事实上,对于每一个函数:'f(n)=Θ(f(n))',而不管* f *是什么。 –

+0

这感觉就像一个没有答案。 –

+0

@G。巴赫其实有些同意,但是,虽然问题是问问题,但这是答案(尽管如果这个问题最终被删除,我不能说我会特别恼火)。如果问题被改变*以询问如何比较两个给定的函数,那么它应该作为偏离主题来关闭,因为它属于[math.se]。 – Dukeling

0

如果你想要某种“封闭形式”表情,就可以得到N! =Ω((sqrt(n/2))^ n)和n! = O(n^n)。请注意,这些更有用。

为了得到他们,看到(N/2)^(N/2)< N! < n^n。

比较与n的^(log n)的,使用限制规则;你可能也想使用n = e ^(log n)。