有没有证据证明这个大的陈述错了?

时间:2015-10-05 13:11:06

标签: algorithm big-o

我一直试图找到一些错误的例子,因为它应该是错误的(?)。

  

如果#navv .active > a { color:#F95700; } g = O(f)s = O(r)

是否有一个反例可以证明这个大分裂是错误的?

5 个答案:

答案 0 :(得分:3)

选择g(n) = n^2, f(n)=n^3s(n) = 1, r(n)=n^2

您可以看到g = O(f)s = O(r),但n^2 = g/s ≠ O(f/r = n^3/n^2 = n)

答案 1 :(得分:1)

允许g = n^2r = n^100s = nf = n^2。显然,该陈述不正确:g/s=nf/r=1/n^98。并且1/n不在O(1 / n ^ 98)中。

想到大哦的一种直观方式是“增长不快”。但是当你采用倒数时,如果“f增长不快于g”,那么1/f将比1/g增长不慢

正确的说法是,如果g = O(f)且s = O(r),则g / r = O(f / s)。请注意,在这种情况下,我交换了对。

答案 2 :(得分:1)

易:

  • g(n)=n²
  • f(n)=n²
  • s(n)= n
  • r(n)=n²

然后:

  • g∈Ο(n²)为真
  • s∈Ο(n²)为真
  • g /s∈Ο(n²/n²)=Ο(1) false

答案 3 :(得分:1)

这个想法是:如果f是O(g),那么f高于g,但不一定是严格限制的。即如果f是O(n)那么它也是O(n ^ 2),O(n ^ 3)等......

你可以使用这个想法通过使用比必要的更大的边界使分母函数变大来找到例子,从而使分数变小。

答案 4 :(得分:1)

Big-O只是一个上限。

f=g=1s慢于r。然后1/s的增长速度超过1/r