【问题标题】:O(n^2) calculation assistance needed需要 O(n^2) 计算辅助
【发布时间】:2020-10-01 23:47:06
【问题描述】:

我似乎无法弄清楚这一点:5n2 + 3n + 9 = O(n2)。选择 c 和 n0。使用 f(n)

我尝试将其压缩为 3n + 9 / c - 5

Stackoverflow,请帮助我! :)

【问题讨论】:

    标签: algorithm time-complexity big-o notation


    【解决方案1】:

    您不必获得最佳常量。如果您正在处理多项式,n0 = 1 可能是一个不错的选择,因为 n ≥ n0 意味着 n2 ≥ n ≥ 1 ,所以

      2              2     2     2      2
    5n  + 3n + 9 ≤ 5n  + 3n  + 9n  = 17n ,
    

    你可以设置 c = 17。

    【讨论】:

      【解决方案2】:

      我不太明白这个问题,但如果你只想证明“5n^2 + 3n + 9 = O(n^2)”, 你必须证明“(5n^2 + 3n + 9)/n^2 -> k in R when n -> +inf”。 这很容易证明:“(5n^2 + 3n + 9)/n^2 = 5 + 3/n + 9/n^2 -> 5 + 0 + 0”

      【讨论】:

        【解决方案3】:

        取 c=11,n0=2。然后我们要显示 f(n) = 5n^2 + 3n + 9 = n0。等效地,证明 6n^2 - 3n - 9 >= 0 对于所有 n >= n0。该表达式因数为 (6n-9)(n+1) >= 0。这仅在 (-1, 1.5) 上为负数,因此对于所有 n > 2,我们有 f(n)

        【讨论】:

          【解决方案4】:

          根据定义:

          O(g(n)) = { f(n) :存在正常数 c 和 n0 使得 0 ≤ f(n) ≤ g(n) 对于所有 n ≥ n0 }

          让我们做一些数学运算来找到一个可行的cn0

          如果我们取 n0 = max(1, 3) = 3,那么上面的不等式成立。此外,我们知道 c ≥ 9,因此我们可以取 c = 9,并且在满足定义要求时完成工作。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2015-06-29
            • 1970-01-01
            • 2014-04-30
            • 1970-01-01
            • 2018-05-13
            • 1970-01-01
            • 2019-12-23
            相关资源
            最近更新 更多