如果,g,h是函数使得f(n)= O(g(n))并且g(n)= O(h(n))证明f(n)= O(h(n))

时间:2013-01-20 17:09:40

标签: algorithm math big-o

我正在参加我的第一个离散数学课,我遇到了一些麻烦。这是我第一次遇到大喔而且我在理解这个特殊问题时遇到了一些麻烦。

我理解n <= O(n)的证明,因为我可以在数学上证明有这样的常数对于n> = k的所有值都适用

如果fghf(n) = O(g(n))g(n) = O(h(n))

的函数

使用课堂上给出的大哦的定义来证明f(n) = O(h(n))

我的回答是

|f(n)| <= U1|g(n)| for all n >= k

|g(n)| <= U2|h(n)| for all n >= j

从而

|f(n)| <= U3|h(n)| for all n >= i

因此f(x) = O(h(x))

我试着在她的办公时间看到教授,但她说我的校对不正确,但不会说出原因。我花了很长时间才知道这件事,我甚至都不知道该做什么。任何帮助都会很棒......


好!让我再试一次!

|f(n)| <= U1|g(n)| for all n >= k

|g(n)| <= U2|h(n)| for all n >= j

i等于k ∨ j中的最大值。

U3等于U1 * U2

f(n) <= U3|h(n)| for all n >= i

从而

f(n) = O(h(n))

更好?

3 个答案:

答案 0 :(得分:3)

使用Big O定义:

f = O(g) iff exist c, n0 > 0 such that forall n >= n0 then 0 <= f(n) <= cg(n)

g = O(h) iff exist k, n1 > 0 such that forall n >= n1 then 0 <= g(n) <= kh(n)

现在采取最后的不平等,并将所有成员除以c0 <= f(n)/c <= g(n),我们可以在第二个不等式中替换g(n)0 <= f(n)/c <= kh(n)。最后将所有成员乘以c,然后获得0 <= f(n) <= kch(n)的定义f = O(h)

f = O(h) iff exist j, n2 > 0 such that forall n >= n2 then 0 <= f(n) <= jh(n)

在我们的案例中,它是:n2 = max(n0, n1)j = ck

答案 1 :(得分:1)

您可以使用巴赫曼 - 兰道符号的限制解释。

然后您可以使用以下推理:

reasoning

答案 2 :(得分:0)

如果你将第二个不等式替换为第一个,你应该以{{1​​}}结束,但你所谓的“我”是关键点。我认为(但我的理论日子过去很遥远,所以我可能错了)你可以用U3 = U1 * U2优雅地结束。