这是MIT OpenCourse Introduction to Algorithm作业中关于Asymptotic Notation的问题:对于以下每个陈述,确定对于渐近非负函数f和g
是否始终为真、从不为真或有时为真。如果它总是正确或从不正确,请解释原因。如果它有时是真的,请举一个例子说明它是真的,一个例子说明它是假的。
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)||
看起来像矢量规范。