f(n) != O(g(n))
和g(n) != O(f(n))
在哪种情况下是正确的?
对此我有以下无法理解的答案:
有时为true:对于f(n) = 1
和g(n) = ||n ∗ sin(n)||
,为true,而对于
用于任何f(n) = O(g(n))
,例如f(n) = g(n) = 1
,这是不正确的。
请有人帮助您了解:
答案 0 :(得分:2)
f(n)!= O(g(n))为真,如果对于任何给定的 k 和任何给定的 N n> = N ,这样 f(n)> k * g(n)。
同时 f(n)!= O(g(n))和 g(n)!= O(f(n))的示例同时是以下内容:让我们为偶数 n 和 f(n)= n 定义 f(n)= 0 n 。类似地,让偶数 n 定义 g(n)= n ,奇数 n 定义 g(n)= 0 。现在显然,无论我们选择 k多大, f(n)> k g(n) 对于所有奇数 n ,无论大小 n 都 g(n)> k f(n) strong> k 是。
您的 f(n)= 1 和 g(n)= || n ∗ sin(n)|| 的示例同样适用,因为 g(n)振荡并获得任意大 n 的值 0 ,但也获得任意大的值,这足以满足我们对的定义f(n)!= O(g(n))和 g(n)!= O(f(n)),因为 f 保持不变功能 1