【问题标题】:If, g , h are functions such that f(n) = O(g(n)) and g(n) = O(h(n)) prove f(n) = O(h(n))如果 g , h 是这样的函数 f(n) = O(g(n)) 并且 g(n) = O(h(n)) 证明 f(n) = O(h(n))
【发布时间】:2013-01-20 17:09:39
【问题描述】:

我目前正在上我的第一堂离散数学课,但遇到了一些麻烦。这是我第一次遇到 big Oh,我在理解这个特殊问题时遇到了一些麻烦。

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

如果 f, g , h 是这样的函数 f(n) = O(g(n))g(n) = O(h(n))

用课堂上给出的big oh的定义来证明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))

更好?

【问题讨论】:

  • Math StackExchange你可能会有更好的运气
  • 这不是数学。这是具有大 O 符号的基本算法。作业问题?
  • 是的,这是一个家庭作业问题。是的,我知道这是一个基本问题。答案很明显,但就措辞/校对而言,我不知道教授在寻找什么
  • 好吧,U3i 应该是什么?它们是从天上掉下来的吗?
  • 顺便说一句,这个属性叫做Transitivity

标签: algorithm math big-o


【解决方案1】:

使用大 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 &lt;= f(n)/c &lt;= g(n),我们可以在第二个不等式中替换g(n)0 &lt;= f(n)/c &lt;= kh(n)。最后将所有成员乘以c,得到0 &lt;= f(n) &lt;= 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

【讨论】:

  • 为什么n2必须是最大的n0和n1?
【解决方案2】:

您可以使用 Bachmann-Landau 符号的极限解释。

那么你可以使用以下推理:

【讨论】:

  • 他们似乎没有使用限制来定义 O。
  • 商的限制通常不存在。 f \in O(g) 表示lim sup |f(x)/g(x)| &lt; \infty,所以如果你用lim sup 代替你的限制,你会得到一些东西。
  • @DanielFischer 是的。一般来说,当然你是对的,我们必须使用最高限制而不是限制。
【解决方案3】:

如果您将第二个不等式替换为第一个不等式,您应该以U3 = U1 * U2 结尾,但您所谓的“i”是关键点。我认为(但我的理论时代已经过去了,所以我可能错了)你可以优雅地结束 n &gt;= argmax{ k, j }

【讨论】:

    猜你喜欢
    • 2021-04-24
    • 2012-09-29
    • 2022-01-20
    • 1970-01-01
    • 2012-04-13
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多