algorithm - 写成[(m + n)^m]/m有效吗!作为 O([n/m]^m) 作为其宽松的上限?

标签 algorithm big-o complexity-theory upperbound

<分区>

在将 [(m + n)^m]/m! 的上限写为 O([n/m]^m) 时,我考虑过那个米! = O(m^m) .

最佳答案

正如您所说,m!o(m^m)。因此,您无法在 A = (m+n)^m/m! 中替换它以获得上限!相反,您可以使用斯特林近似值来获得适当的上限。正如我们所拥有的(参见 here ):

m! = \sqrt{2\pi m} (m/e)^m (1 + O(1/m))

您可以通过将 m! 替换为 (m/e)^m 来获得 A 的上限。因此:

A < (n+m)^m / (m/e)^m = (e*(n+m)/m)^m = (e * (n/m + 1))^m

如果 n > m,我们知道 (n/m + 1)^m = Theta((n/m)^m)。因此,A\in O(e^m (n/m)^m)

关于algorithm - 写成[(m + n)^m]/m有效吗!作为 O([n/m]^m) 作为其宽松的上限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59155616/

相关文章:

c++ - 此代码的最坏情况?

big-o - 为什么方阵乘法的时间复杂度定义为 O(n^3)?

c# - .NET System.String.Length 属性采用什么时间顺序?

algorithm - 当数据项传入而不是已经存在时比较排序算法

algorithm - 多项式时间算法使右手总和与左手总和的组合相等?

java - 循环数组的队列实现

algorithm - C# 4.0,确定字符串长度是否最有效的方法!= 0?第2部分

algorithm - 是否有用于多参数预测的特殊类型的多元回归?

algorithm - 算法的复杂度 : why 'about' ?

java - 硬币算法的复杂性