给出两个函数f(n)和g(n)使得f(n)不是O(g(n))而g(n)不是 O(F(N))。
当我开始思考它时,我想到了n和n ^ 2。但是,阅读更多我意识到如果我的函数f是n并且g是n ^ 2,那么f primary属于O(g(n))。所以,我回到原点。关于如何去做的任何线索?
答案 0 :(得分:4)
提示:你的功能需要非常反常。尝试使用sin(n)。
还要考虑手动构建f和g。选择一堆间隔,如[1,2],[3,4],[5,6],......其中f比g大得多,并且让g比其他区间的f大得多。< / p>
答案 1 :(得分:1)
设f(n)= n%2,g(n)= 1-n%2。 (此处x%y与C中相同 - 除以y后的x的余数)。
f = O(g)和g = O(f)都不。对于没有奇数n,k> 0使得f(n)<= kg(n),因为g(奇数)= 0并且f(奇数)= 1。类似地,对于偶数n而言,k> 0使得g(n)<= kf(n)。
答案 2 :(得分:1)
我想到的第一件事就是。
f(n) = (-n)^n
g(n) = 2*n