2^n −8 = O(2^n)
It says there are some positive constants c and n0 for which
0 <= f(n) <= cg(n) for all n >= n0
我解决了它:
2^n −8 <= c2^n
If c = 1, and n0 = 1
1-8 <= 1*1
-7<= 1
then for all n >= n0 it remains true.
这是真的,但我不明白尽可能紧密地找到界限是什么意思? 谁能解释一下?
答案 0 :(得分:1)
尽可能紧密意味着找到具有最小增长顺序的函数g(n)
,使其仍然满足f(n) = O(g(n))
。在你的例子中它相对简单(因此你的困惑,我相信) - 只删除除了增长最快的术语(2^n
)之外的所有内容。
但是,让我们考虑一个例子,其中最严格的界限可能不会立即显而易见 - 斐波那契序列生成器:f(n) = f(n - 1) + f(n - 2)
。查找上限的一种简单方法是进行近似,将n - 2
替换为n - 1
以提供f(n) ≈ 2 * f(n - 1)
,即O(2^n)
。这不是 tightest 的约束 - 通过求解二次方程式,您会发现最严格的界限实际上是Ө(1.61...^n)
- 有关详细信息,请参阅this page。