【问题标题】:Does O(f(n)) + Ω(g(n)) equal Ω(f(n)) + O(g(n))?O(f(n)) + Ω(g(n)) 是否等于 Ω(f(n)) + O(g(n))?
【发布时间】:2020-08-05 21:13:56
【问题描述】:

下面的等式是真的吗? :

O(f(n)) + Ω(g(n)) = Ω(f(n)) + O(g(n))

我知道 Big O 的意思是不比 (function) 好,而 Big Omega 的意思是不比 (function) 差。但我不知道这是否使上述说法正确或错误。

【问题讨论】:

    标签: big-o computer-science


    【解决方案1】:

    令$f(n) = n, g(n)= 2^n$

    $t(n) = 2n$ 在第二组,因为 $n = Ω(f(n))$ 和 $n = O(g(n))$,但不在第一组

    【讨论】:

    • 所以我让 t(n) 为 t(n) = t1(n) + t2(n) t1(n) = n, t2(n)=n t1(n)∈ Ω (f(n)) , t2(n)∈O(g(n)) 这是对的。另一方面(对方) t1(n)∈O(f(n)) , t2(n) ∉ Ω(g(n))
    【解决方案2】:

    我们有三种一般情况(递增函数):

    • 案例 1: f(n) ∈ o(g(n))(注意“小哦”)。

      在这种情况下,O(f(n)) ⊂ O(g(n)) 和 Ω(g(n)) ⊂ Ω(f(n))。因此,O(f(n)) + Ω(g(n)) 是 O(g(n)) + Ω(f(n)) 的真子集。

      例如,如果 f(n) = n 且 g(n) = n3,则 n2 在 Ω(f(n)) + O 中(g(n)),但不在 O(f(n)) + Ω(g(n)) 中。

    • 案例2: f(n) ∈ Θ(g(n))

      在这种情况下,O(f(n)) = O(g(n)) 和 Ω(g(n)) = Ω(g(n)),所以这两个集合是相等的。

    • 案例3: f(n) ∈ ω(g(n))

      这种情况相当于情况1,只是将fg翻转了。所以通过对称性,我们有 O(f(n)) + Ω(g(n)) 是 O(g(n)) + Ω(f(n)) 的正确 超集

    总之,这两个集合在一般情况下是不相等的。

    【讨论】:

    • 只有3个案例是不对的。如果 n 为奇数,则假设 f(n) = 1,否则为 2^n,则 g(n)=n^2。它不会改变以“例如”开头的句子的答案的主要思想
    • @RiaD 谢谢。我添加了“增加功能”来解决问题‌:>
    猜你喜欢
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 2018-01-20
    • 2012-09-29
    • 2012-04-13
    • 2021-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多