$f(n)=\Theta(g(n))$是否意味着对于某个常数$c$,$f(n)=cg(n)$



我不这么认为,因为sin(n(似乎是一个反例(它是$\Theta(1($,但不是常数(。是否存在不平凡的反例(从某种意义上说,它们与某些已知算法有关(?

你是对的,sin(n(就是一个很好的反例。

一个更简单的反例是f(n(=n+1g(n(=n

f(n(显然是ϴ(g(n((使得

对于所有nn+1=c n

由于您想要一个与实际算法的运行时间相关的反例,所以这个应该做得很好(例如,从1n的循环与从1循环到n+1(。

总之,ϴ并不像你的陈述那样强烈,但它是类似的,这可能会引起你的困惑。这意味着f(n(=O(g(n((f(n(=Ω(g(n((

上面的答案是正确的,但我想提供进入"为什么";从不同的角度来看。

首先,f(n(=ϴ(g(n((当且仅当f(n。

你可能还知道,对于所有n≥n0和一些c>0。在通俗英语中,这大致意味着">最终,f(n(总是小于或等于g(n(乘以某个常数";。

类似地,我们还知道f(n(=Ω(g(n((当且仅当对于所有n≥n0和一些d>0。这句话的通俗英文翻译是,我们知道";最终,f(n(总是小于或等于g(n(乘以某个常数";。

由于f(n(=ϴ(g(n。

相关内容

最新更新