我已经看到了O符号的两种不同的正式定义:
f(n)= O(g(n))如果有常数n 0 ,c其中对于任何n 0 ,我们有f(n)&lt ; CG(n)的
和
f(n)O(g(n))如果有常数n 0 ,c其中对于任何 0 ,我们有f(n)≤cg( n)的
区别在于f(n)是否严格小于cg(n)或小于或等于cg(n)。
这些定义是否相同?如果是这样,我该如何证明呢?
答案 0 :(得分:3)
首先,如果你有那个
f(n)< c g(n)表示任何n≥n 0
那么
也是如此对于任何n≥n 0 ,f(n)≤cg(n)。
同样,假设
f(n)≤cg(n)对于任何n≥n 0
假设g(n)≥1,那么对于任何n≥n 0 ,你得到
f(n)≤cg(n)≥cg(n)+1≤cg(n)+ g(n)=(c + 1)g(n)
因此,使用新常量c'= c + 1,我们得到
f(n)< c'g(n)表示任何n≥n 0
希望这有帮助!