证明f(n)总是O(f(n-1))

时间:2013-10-01 23:26:25

标签: math big-o asymptotic-complexity

假设当n变为无穷大时f(n)变为无穷大。

这是一个家庭作业问题,我希望得到一个想法/指导,而不是完整的答案。

1 个答案:

答案 0 :(得分:5)

事实并非如此。考虑函数f(n)= n!作为一个反例,当n进入无穷大时,肯定会走向无穷大。但是,我们可以证明,n! ≠O((n - 1)!)。

证据是矛盾的。假设n! = O((n - 1)!)。然后存在一些n 0 和c,这样对于任何n≥n 0 ,我们有n! ≤c(n - 1)!这意味着对于任何n≥n 0 ,我们有n! /(n - 1)! ≤c,或n≤c。但是如果我们选择n = max {n 0 ,c} + 1,那么我们就知道n≥n 0 且n≥c+ 1,这与n≤ C。既然我们有矛盾,那么假设必定是错误的,因此n! ≠O((n - 1)!)。

如果你想知道我是怎么想到的:我的想法是找到一个增长如此之快的函数,无论你选择什么常数,f(n + 1)和f(n)之间的比率都会最终变得如此之大以至于它会超过那个常数。恰好是n的情况!适合账单。回想起来,我应该记得那个! ≠O((n - 1)!),因为许多算法都有像O((n + 1)!)这样的运行时,它不会简化为O(n!)。

希望这有帮助!