【问题标题】:Big Oh notation (how to write a sentence)大哦符号(如何写一个句子)
【发布时间】:2011-09-28 12:05:14
【问题描述】:

我有一个关于渐近符号的测试,有一个问题:

考虑以下几点:

O(o(f(n)) = o(f(n))

  1. 使用渐近符号的约定,用文字写出语句的含义。
  2. 这句话是真是假?证明。

我弄错了(不完全记得我写了什么),但我认为是这样的:

对于任何函数 g(n) = o(f(n)),有 是一个函数 h(n) = o(f(n)) 使得 h(n) = O(f(n))。

对吗?

对于 (2),我不完全确定。有人也可以帮我解决这个问题吗?

提前致谢。

【问题讨论】:

  • 看来你定义了g(n)之后其实并没有使用。
  • O(o(f(n)) 对我来说没有任何意义。

标签: math computer-science big-o asymptotic-complexity


【解决方案1】:

我想他们是想问一个关于大 O 和小 o 渐近符号之间关系的问题。

A) 小 O 有界函数的大 O 边界简化为/实现该函数的小 O 边界。

B) 是的。 Big O 是一个不太“严格”的界限,因为它规定存在一个 M 和一个 x0,使得 f(n) = x0,而 Little O 规定对于所有正 M ,有一个 x0 使得 f(n) 的上界为 M * g(n)。

因此,大 O 的“一个 M”是小 O 的“所有 M”的子集,因此 O(o(f(n)) 等价于 o(f(n))。

对于实际数学而不是我的弱 ascii,请参阅wikipedia page

【讨论】:

    【解决方案2】:

    简单的英语含义: 严格大于 f(n) 的函数的上限严格大于 f(n) 您的陈述可以写成:对于任何函数 g(n)=o(f(n)) 都存在 h(n)=O(g(n)) 这意味着 h(n) 也是 o(f(n )) => O(g(n)) = o(f(n)) => O(o(f(n))) = o(f(n)) 是的,这个说法是正确的。 (当然,上面的陈述假设所有正确的常量和使用“严格更大是可读性和理解性:它应该是“严格的上限”)

    【讨论】:

      【解决方案3】:

      对不起,如果这看起来有点旁白,但我认为这是一个狡猾的问题(正如 Alexandre C 所暗示的那样),因为它是对符号的相当大的滥用。

      通常教授大 O 表示法的方式(尤其是在计算机科学课程中)就像 O(f(n)) 是一个函数。这应该引起一些警钟,因为陈述“n = O(n)”和“2n = O(n)”都是正确的,但“n = 2n”不是。如果我们想说“f(n) 是 g(n) 的大 O”,我们在技术上不应该说“f(n) = O(g(n))”,而是应该说“f(n ) 是一个元素 O(g(n))"。前者只是一种方便的简写方式。

      所以回到实际的问题,O(o(f(n))) 并不真正意味着很多(或者至少我从未见过一组函数的 big-O 的正式定义) .但我想解释它的合乎逻辑的方式是按照 enjay 的回答,g(n) = o(f(n))。

      【讨论】:

        猜你喜欢
        • 2012-01-05
        • 2013-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多