如果Big Theta符号的数学规则是:
f(n) = Theta (g(n)) if and only if f(n) >= cg(n) for some c after n >= n0 >=0
然后当f(n)= 5n 2 时,我们将其视为Theta(n 2 )
考虑到5n 2 > = n 2 ,c = 1且n 0 = 0
但
为什么不f(n)= theta(n)
考虑到5n 2 > = n对于c = 1且n 0 = 0 ??
答案 0 :(得分:2)
首先,Theta(g)
是设置的功能。所以从技术上讲,你需要写f in Theta(g)
而不是f = Theta(g)
。
非正式Theta(g)
包含所有增长同样强大(渐近)的函数。所以它就像渐近=
(等于)。
部分f
位于Theta(g)
,如果它位于O(g)
和Omega(g)
中。
现在举个例子。我们有f(n) = 5n^2
。如你所说,它位于Theta(n^2)
但Theta(n)
中不。您的示例是c = 1
和n_0 = 0
。
此时您的公式错误。 Big-O的定义是
因此,使用<=
而不是>=
,那将是Big-Omega。
我们得到了
5n^2 <= 1 * n
对于您的值,让我们为所有n >= n_0 = 0
:
如图所示,对于所有f
,1 * g
不小于n >= n_0
。因此,它不在O(n)
。
由于Theta
同时代表O
和Omega
,如果您不在Theta
,则无法O
。< / p>