【问题标题】:Prove for 928675*2^n=0(2^n) Big-0notation complexity证明 928675*2^n=0(2^n) Big-0notation 复杂度
【发布时间】: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


【解决方案1】:

你应该准确地证明这个命题 (O(f(n))=O(K*2^n))。你不能用它来证明自己。

f(x) is O(g(x))的定义是,对于一些常数实数kx_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^xk=928675 也是如此。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-08
    • 2021-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多