Algorithm 是O((对数n)!)多项式吗?
我想找到Algorithm 是O((对数n)!)多项式吗?,algorithm,time-complexity,big-o,Algorithm,Time Complexity,Big O,我想找到O((日志n)!)。我认为O((logn)!)和O(n!)是相等的!因为我认为当n是无限的(logn)和n是相等的。这是真的吗?如果是,我如何证明?如果不是的话,O((logn)!)多项式?让我们回到一些基本数学: 我们知道如果log a>log b,那么a>b:(log base大于1) 现在我们知道log(N!)=NLogN() 保持相同的参数,我们得到,log((logN)!)=logN logN 自, log(N!)为多项式次,log((logn)!)为对数阶, 清晰地 O(N
O((日志n)!)
。我认为O((logn)!)
和O(n!)
是相等的!因为我认为当n是无限的(logn)代码>和n代码>是相等的。这是真的吗?如果是,我如何证明?如果不是的话,O((logn)!)
多项式?让我们回到一些基本数学:
我们知道如果log a>log b,那么a>b:(log base大于1)
现在我们知道log(N!)=NLogN()
保持相同的参数,我们得到,log((logN)!)=logN logN
自,
log(N!)为多项式次,log((logn)!)为对数阶,
清晰地
O(N!)>O((logN)!)
希望这能有所帮助。使用$n!~\sqrt{2\pin}\frac{n}{e}^n(1+O(frac{1}{n}))$,使用$\log{n}$的相同公式,可以检查$n!$前导因子是$n^n$,而$\log{n}!$的前导因子是$n^n$相同的因子变成$\log{n}^\log{n}$。通过使用$\ln{n}\leq n-1$这一事实,我相信您可以很容易地证明$O(\log{n}!)$小于$O(n!)$。我想接下来的问题是(logn)代码>是多项式有界的。它显然不是多项式本身斯特林近似给出了
n!≤英文^[n+1/2]*e^(−n)
所以
(日志n)!≤e(对数n)^[1/2+对数n]*e^(−日志n)
现在(logn)^logn=(e^logn)^logn=e^[(logn)⋅(logn)]
因此,增长顺序大约是e^[(logn)(loglogn)−logn]=n^[(logn)−1]
不幸的是,这不受任何多项式的限制,因为loglogn
最终将超过任何正整数
例如,比较(log n)代码>带有n^2
在n=e^10时,(对数n)=3480,而(e^10)2≈4.85×108
在n=e^100时,(对数n)!≈10157
,而e^200≈1086
既然已经完成了正确的数学运算,那么让我添加一个更直观的解释,说明为什么对于任何给定的c
,O(log(n)!)>O(n^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)
函数将在2
的每个p
次方将其值乘以p
,但n^10
将仅将其值乘以1024
,因此日志(n)代码>最终将变得越来越大
另外,log(n)
的增长速度比任何指数都慢,通过观察n
增长1时两个函数的值相乘的程度,可以得出类似的结论。“当n为无穷大(logn)!且n!相等时”-首先,你可以这样说任何递增函数。n、 n^2,n^3,nlog(n),任何东西。第二,我们不能将无穷大插入n!或(对数n)!,这不是big-O符号所描述的。