f = Ω(log n) 和 g = O(n) 是 g(n) = O(f (n))

Posted

技术标签:

【中文标题】f = Ω(log n) 和 g = O(n) 是 g(n) = O(f (n))【英文标题】:f = Ω(log n) and g = O(n) is g(n) = O(f (n)) 【发布时间】:2022-01-20 15:55:36 【问题描述】:

给定两个函数 f = Ω(log n) 和 g = O(n),考虑以下语句。为了 每个陈述,写出是真是假。对于每个错误的陈述,写两个 显示反例的函数 f 和 g。

 1) g(n) = O(f (n))
 2) f (n) = O(g(n))
 3) f (n) = Ω(log (g(n)))
 4) f (n) = Θ(log (g(n)))
 5) f (n) + g(n) = Ω(log n)

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

【问题讨论】:

我投票结束这个问题,因为它是一个数学问题,而不是一个编程问题。您可以在 Mathematics 或 Computer Science 上提出类似的问题,但请务必在发布前查看他们的问题指南。 我认为你的定义颠倒了。 formal definitions can be found here. 【参考方案1】:

    错误。一个反例是g(n) = n \in O(n)f(n) = log(n) \in Omega(log(n))。这两个假设都是正确的,但g(n)不在O(f(n))中。

    错误。一个反例是g(n) = log(n) \in O(n)f(n) = n \in Omega(log(n)),但f(n) 不在O(g(n)) 中。

    没错。如f(n) \in Omega(log(n)),表示lim_n\to\infty f(n)/log(n) > 0。作为g(n) \in O(n),我们可以直接得出结论lim_n\to\infty f(n)/log(g(n)) > 0。因此f(n) \in Omega(log(g(n))

    错误。一个反例是f(n) = n \in Omega(n)g(n) = log(n) \in O(n),但f(n) 不在theta(g(n)) = theta(log(n)) 中。

    没错。如f(n) \in Omega(log(n)),表示lim_n\to\infty f(n)/log(n) > 0。因此A = lim_n\to\infty (f(n) + g(n))/log(g(n)) = f(n)/log(n) + g(n)/log(n)。因此,作为g(n) > 0A > 0,它的意思是f(n) + g(n) \in Omega(log(n))

【讨论】:

谢谢先生,但我该如何解决 @AhmedAli 随时。 “解决它”是什么意思?这些是一些真/假问题,我通过相应符号的定义来证明它们或通过反例来反驳它们。 我试过这样的事情,但我不知道这是否正确 f(n)= Ω(log n) 所以 f(n) > constant1 * log n 和 g(n) = O(n ) 所以 g(n) @AhmedAli 正如我所反驳的那样,这种说法是不正确的。有一个反例。因此,不幸的是,您的证明似乎对陈述 1 不正确。 好的,我会尽力理解这一点,但非常感谢您

以上是关于f = Ω(log n) 和 g = O(n) 是 g(n) = O(f (n))的主要内容,如果未能解决你的问题,请参考以下文章

[copypaste]各种表示法

算法分析| 小o和小ω符号

C语言编程中 谁懂大o记法这之类的啊

算法分析 - 基础

复杂度

算法分析中常用的几种渐进符号