在将 [(m + n)^m] / m! 的上限写为 O([n / m]^m) 时,我考虑了 m! = O(m^m)。
在将 [(m + n)^m] / m! 的上限写为 O([n / m]^m) 时,我考虑了 m! = O(m^m)。
正如你所说,m!
是 o(m^m)
。因此,你无法将其替换为 A = (m+n)^m / m!
以获得上限!相反,你可以使用斯特林公式来获得适当的上限。正如我们所知(参见这里):
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)
它不是。