我应该证明92675 * 2 ^ n = 0(2 ^ n)并使用0(f(n))的数学定义。我想出了以下答案,不确定这是否是接近它的正确方法
答案:由于92875是常数,我们可以用K和F(n)= K + 2n代替它,因此O(f(n)= O(K + 2n),因为K是常数可以从公式中拿走,因此我们留下O(f(n)= O(2n)
有人可以确认这是否正确吗? 提前致谢
编辑:刚刚意识到我写了+而不是*并且忘记了几个^符号
答案:由于92675是常数,我们可以用K和F(n)= K * 2 ^ n代替它,因此O(f(n)= O(K * 2 ^ n)并且因为K是常数它可以从公式中拿走,因此我们留下O(f(n)= O(2n)
答案 0 :(得分:2)
你应该准确证明这个命题(O(f(n))=O(K*2^n)
)。你不能用它来证明自己。
f(x) is O(g(x))
的定义是,对于k
的某些常数实数x_0
和|f(x)| <= |k*g(x)|
,x>=x_0
。
这就是为什么如果f(x) = k*g(x)
我们可以说f(x) is O(g(x))
(|k*g(x)| <= |k*g(x)|
代表任何x
)。特殊情况下,g(x)=2^x
和k=928675
也是如此。