如何使用big-O的定义证明3n + 2log n = O(n)?
C应该是6,& k是1,但我不知道如何找到它。很多人会非常感激。
答案 0 :(得分:6)
要正式证明这个结果,你需要找到n 0 和c的选择
对于任何n≥n 0 :3n + 2logn≤cn
要开始此操作,请注意,如果您有任何n≥1,则记录n< ñ。因此,如果你考虑任何n≥1,你就有了
3n + 2log n< 3n + 2n = 5n
因此,如果您选择n 0 = 1且c = 5,那么
对于任何n≥n0:3n + 2log n< 3n + 2n =5n≤cn
因此3n + 2 log n = O(n)。
更一般地说,当给出这样的问题时,尝试识别主导项(这里是n项)并尝试找到n 0 的一些选择,使得非显性项被不堪重负主导词。一旦你完成了这一点,剩下要做的就是选择正确的常数c。
希望这有帮助!
答案 1 :(得分:0)
狂野猜测(你的问题很不清楚):任务是显示
O(3n + 2log n) = O(n)
现在它是如何出现的:n -> n
增长速度超过n -> log n
,并且因为复杂性渐近,只有增长最快的术语很重要,这是{{ 1}}在这种情况下。
答案 2 :(得分:0)
如果我没记错的话你可以证明以下事项: 如果f1(n)= O(g1(n)),f2(n)= O(g2(n))则f1(n)+ f2(n)= O(max {g1(n),g2(n)) })。 从那里它非常直接。