我有一个家庭作业问题
Given f(n) is O(k(n)) and g(n) is O(k(n)), prove f(n)+g(n) is also O(k(n))
我不知道从哪里开始,有什么帮助指导我如何解决这个问题?
答案 0 :(得分:0)
尝试逻辑地完成它。 f(n)
以线性速率增加。 g(n)
也是如此。因此
O(n) + O(n) = O(2n)
当试图找到函数的大O分类时,常量不计算在内。 我会把剩下的(包括为什么)作为练习给你。 (在SO上获得完整的答案将是作弊!)
答案 1 :(得分:0)
求和规则:如果f(n)
为O(h(n))
且g(n)
为O(p(n))
,则f(n)+g(n)
为O(h(n)+p(n))
对您的案例使用此规则,复杂性为O(2k(n))
,这只不过是O(k(n))
。
答案 2 :(得分:0)
因此,对于任意大的n值,f(n)是O(g(n))iff f(n)小于或等于g(n)的某个正常数倍(所以这个:f(n) )< = cg(n),n> = n_0)。通常,为了证明某些东西是O(g(n)),我们提供一些c和n_0来表明它是真的。
在您的情况下,我将首先使用该定义,因此您可以说f(n)< = ck(n)和g(n)< = dk(n)。我不想完全回答你的问题,但你基本上只是试图证明f(n)+ g(n)< = tk(n)。
* c,d和t都是任意的正常数。如果您需要更多帮助,请发表评论,我很乐意提供更多信息。