所以我目前正在参加算法课,并被要求证明
Prove: ((n^2 / log n) + 10^5 n * sqrt(n)) / n^2 = O(n^2 / log n)
我在解决问题时想出了n0 = 1 and c = 5
我最终得到了1 <= 5
我只是想知道我是否可以让某人为我验证这一点。
我不确定这是否是适合发帖的论坛,如果它是错的我道歉,如果你能指出我正确的方向去那将是美好的。
答案 0 :(得分:4)
如果我没有错,你必须证明给定函数的上限是n^2 logn
。
对于very large values of n
,
n^2/logn >= n * sqrt(n)
n >= sqrt(n) * log(n)
由于log(n) < sqrt(n)
,log(n)*sqrt(n)
始终小于n
。因此,我们的不平等是正确的。因此,上限为O(n^2/ logn)
。
答案 1 :(得分:1)
您可以使用限制方法流程:
因此,您案例的解决方案应如下所示:
答案 2 :(得分:0)
假设函数f
和g
正在增加,根据定义f(x) = O(g(x))
iff limit x->inf f(x)/g(x)
是非负的。如果您将函数替换为f
和g
,并简化表达式,您会发现该限制通常为0
。