繁体   English   中英

渐近符号

[英]Asymptotic Notation

这是从MIT开放式课程算法简介的分配中得出的关于渐近符号的问题:
对于以下每个陈述,确定对于渐近非负函数fg ,它是始终为true从不为true有时为true 如果它始终永远都不是 ,请说明原因。 如果有时为true ,请提供一个示例为true,为假。

f(n) ≠ O(g(n)) and g(n) ≠ O(f(n))   (both are Big-O notes)

我认为那永远都不真的 这是我的证明:

   f(n) ≠ O(g(n))
=> f(n) = w(g(n))   (little-omega note)
=> g(n) = o(f(n))   (little-o note)
=> g(n) = O(f(n))   (big-O note)

结果与g(n) ≠ O(f(n)) (Big-O note)相矛盾。 同样

   g(n) ≠ O(f(n))
=> g(n) = w(f(n))   (little-omega note)
=> f(n) = o(g(n))   (little-o note)
=> f(n) = O(g(n))   (big-O note)

这与f(n) ≠ O(g(n)) (Big-O note)相矛盾。

该解决方案说有时正确的

For f(n) = 1 and g(n) = ||n*sin(n)|| it is true,  
while for any f(n) = O(g(n)), e.g. f(n) = g(n) = 1, it is not true.

我的证明在哪里做错了? 另外,我无法理解解决方案。 ||n*sin(n)|| 在我看来像是矢量规范

我认为n*sin(n)只是表明它是不断变得大于&小的函数f(n) = 1为正偶数为用于定义大O&从而恒定乘数的所有选择后续值f(n) ≠ O(g(n)) and g(n) ≠ O(f(n))

天真的选择的函数(例如g(n) = 2*sin(n)在这里效果不好。 有人可能会认为这也会在f(n) = 1周围保持交替,但是g(n) = O(f(n)) : M*f(n) > g(n) for M = 3

第一个是不正确的:从这个f(n) ≠ O(g(n))出发,它并不遵循: f(n) = w(g(n)) 这两个功能可能在某个点相交,然后拍打,另一个则变得更大(如果我使用简单的话)。

他们选择的函数就是这种情况:对于n <= 1,第一个f(n)> g(n),并且存在ns,其中g(n)> f(n)(例如pi / 2)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM