我想找O((log n)!)
。我认为O((log n)!)
和O(n!)
是平等的!因为我认为当n是无穷大(log n)!
且n!
相等时。这是真的吗?如果是,我该怎么表明?如果不是O((log n)!)
多项式?
答案 0 :(得分:5)
我认为你的后续问题是(logn)!
是否是多项式限制的。这显然不是多项式本身。 斯特林的逼近给了我们
n!≤en^[n+1/2]*e^(−n)
所以,
(log n)!≤e(log n)^[1/2+log n]*e^(−log n)
现在(log n)^log n=(e^loglogn)^logn=e^[(logn)⋅(loglogn)]
因此,增长的顺序约为e^[(logn)(loglogn)−logn] =n^[(loglogn)−1]
遗憾的是,这不受任何多项式的限制,因为loglogn
最终会超过任何正整数。
例如,将(log n)!
与n^2
进行比较。
n=e^10,(log n)!=3480
,(e^10)2≈4.85×108
n=e^100,(log n)!≈10157
,e^200≈1086
答案 1 :(得分:2)
由于已经完成了正确的数学运算,让我为任何给定的O(log(n)!) > O(n^c)
添加更直观的解释为什么c
。我们假设对数是基数2,为简单起见,选择c
为10.(该参数对于不同数量的一般值也同样有用)。
那么,为什么log(n)!
会比n^10
更大?我们来看看这两个功能'功率为2的值,更具体地说,它们与2的最后一次幂相比增长了多少。(从现在开始n = 2^p
)
log(2^p)! = p * log(2^(p-1))!
,(2^p)^10 = 2^10 * (2^(p-1))^10
。这可能看起来很复杂,但它告诉我们log(n)!
函数会将p
的{{1}}幂2
的值乘以p
,但n^10
1}}仅将1024
乘以它的值,因此log(n)!
最终会变得越来越大。
此外,log(n)!
比任何指数增长都慢,类似的参数可以通过观察当n
增长1时两个函数乘以它们的值来做出多少。
答案 2 :(得分:0)
现在我们知道 log(N!)= NLogN (see here for proof))
并持有相同的参数,我们得到, log((log N)!)= logN logLogN
因为,
log(N!)是多项式,log((log N)!)是对数阶,
显然,
O(N!)> O((logN)!)
希望这有帮助。
答案 3 :(得分:0)
使用Stirling's approximation说明$ n! 〜\ sqrt {2 \ pi n} \ frac {n} {e} ^ n(1 + O(frac {1} {n}))$,并使用$ \ log {n} $的相同公式,可以检查$ n!对于$ \ log {n},$的主要因素是$ n ^ n $! $相同的因子变为$ \ log {n} ^ \ log {n} $。通过使用$ \ ln {n} \ leq n - 1 $的事实,我相信你可以很容易地证明$ O(\ log {n}!)$小于$ O(n!)$。