问题描述
我想找到 2n + n! + n^n
的大 O。
在 x^x 和 x 之间选择 Big-O 表示法时我遇到了冲突!因为我已经学会了 x!是最主要的术语。
x 也是!是否比 x^x 更占优势?
解决方法
让我们展开这两个功能:
- xx 扩展为 x * x * x * ... * x。此扩展中有
x
个因素。 - x!扩展为 x * (x - 1) * (x - 2) * ... * (x - (x - 1))。此扩展中还有
x
因素。
x 严格大于 x - n,所以我们可以有把握地说 xx 比 x 阶乘更有优势。
所以 (n! + nn) 是 O(nn).
你可以通过几个例子来验证这一点:
x | x^x | x! |
---|---|---|
2 | 4 | 2 |
5 | 3125 | 120 |
10 | 1x1010 | 3628800 |