【发布时间】:2015-01-29 13:13:56
【问题描述】:
我应该证明 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)
【问题讨论】:
-
是的,你是对的。当 n 变大时,常量“928675”不会影响情况。
-
您能否通过编辑@QtRoS检查答案是否正确
-
您正在使用
O(f(x)) = O(k*f(x))来证明O(k*f(x)) = O(f(x))。这是同义反复。 -
明确:您的回答并不能证明这一点。您应该使用 big-o 定义。
标签: algorithm math logic big-o proof