Time n阶乘的时间复杂度

Time n阶乘的时间复杂度,time,time-complexity,Time,Time Complexity,我有以下问题,但我不知道如何证明它 n! is Select one or more: a. O(n^{3}) b. O((n/2)^{n}) c. O((n/3)^{n}) d. O((n+1)!) e. O(n^{n}) f. O(2^{n}) 我想用f(x)的性质∈ O(g(x))当且仅当存在一个值x0和一个常数c>0,使得对于所有x>=x0f(x)而言,n是正确的!≠ O(2n)正是你提到的原因 对于(b)和(c),您需要一种更细致的方法。斯特林近似表示 n

我有以下问题,但我不知道如何证明它

n! is
    Select one or more:
 a. O(n^{3}) 
 b. O((n/2)^{n}) 
 c. O((n/3)^{n}) 
 d. O((n+1)!) 
 e. O(n^{n})
 f. O(2^{n})

我想用f(x)的性质∈ O(g(x))当且仅当存在一个值x0和一个常数c>0,使得对于所有x>=x0f(x)而言,n是正确的!≠ O(2n)正是你提到的原因

对于(b)和(c),您需要一种更细致的方法。斯特林近似表示

n!=Θ(√北(东)北

这可能有助于评估n的极限!超过(b)和(c)数量。如果你这样做了,你会发现两个边界中只有一个有效,而不是两个都有效

是的,(d)和(e)是正确的


希望这有帮助

你认为乘法的代价是常数时间还是其他函数?对于可以用32位或64位整数表示的阶乘范围,N!是O(N)乘法。当执行乘法所需的时间更复杂时,因为值太大,无法装入芯片中的固定大小寄存器,但您仍在执行精确表示时,执行乘法所需的时间会随着数字的增加而增加。@JonathanLeffler我认为问题不在于计算n的复杂性!就跟n一样多!作为一个函数与这些其他函数进行比较。lim(n->∞) (sqrt(n)*(n/e)^n)/(n!)=1/sqrt(2π)
n! <= c*2^{n}, for all n>=n0
n!/2^n <=c, for all n>=n0