我们是否具有非因子函数Θ(n!)?

时间:2018-03-17 07:23:00

标签: algorithm time-complexity

所以我知道f(n)=n^ng(n)=n!相比增长更快,t(n)=2^n增长更少

但我找不到任何与n具有相同顺序的函数!并不是一个因子函数

我们有这样一个函数,它是Θ(n!)而不是阶乘?如果我们确实有这样的功能,你能提一下吗?

3 个答案:

答案 0 :(得分:4)

是的 - n!中最着名的asymptotic equivalent之一是Stirling's approximation,即:

(1)  n! ~ sqrt(2.pi.n).(n/e)^n

请注意使用等效 而不是Θ关系。前者暗示后者:

(2)  f(n) ~ g(n) => f(n) = Θ(g(n))

用(1)和(2)得到:

n! = Θ(sqrt(2.pi.n).(n/e)^n)

由于你要求的是Θ近似而不是等价,你可以创建任意数量的函数,例如乘以2 - sin(n)(这不是特别有用!):

n! = Θ((2 - sin(n)).sqrt(2.pi.n).(n/e)^n)

答案 1 :(得分:1)

一个简单的例子是计算数组的所有可能的排列:

  • n第一个元素的选择
  • n - 1 for 2nd
  • n - 2 for 3rd
  • 等......

总共有n(n - 1)(n - 2)... = n!排列(如果元素是唯一的或标记的)。

答案 2 :(得分:-1)

查看Double Factorial并尝试比较它们。

相关问题