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

Math 证明f(n)总是O(f(n-1)),math,big-o,asymptotic-complexity,Math,Big O,Asymptotic Complexity,假设f(n)趋于无穷大,就像n趋于无穷大一样 这是一个家庭作业问题,我希望能有一个想法/指导,而不是完整的答案。这不是真的。考虑函数f(n)=n!作为一个反例,当n走向无穷大时,它肯定会走向无穷大。不过,我们可以证明,n!≠ O((n-1)!) 证据是矛盾的。假设n!=O((n-1)!)。然后存在一些n0和c,对于任何n≥ 不,我们有n!≤ c(n-1)!。这意味着对于任何n≥ n0,我们有那个n!/(n-1)!≤ c、 或者说≤ C但是如果我们选择n=max{n0,c}+1,那么我们知道n≥

假设f(n)趋于无穷大,就像n趋于无穷大一样


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

这不是真的。考虑函数f(n)=n!作为一个反例,当n走向无穷大时,它肯定会走向无穷大。不过,我们可以证明,n!≠ O((n-1)!)

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

如果你想知道我是如何得出这个结论的:我的想法是找到一个增长如此之快的函数,无论你选择什么常数,f(n+1)和f(n)之间的比率最终都会变得如此之大,以至于它会超过这个常数。只是碰巧n!符合要求。回想起来,我应该记得n!≠ O((n-1)!)因为许多算法都有类似于O((n+1)!)的运行时,它不会简化为O(n!)


希望这有帮助

对此我深表歉意。忽略描述中的g(n)。你也可以修改描述。这个问题似乎与主题无关,因为它是关于数学的。要给出比下面更完整的答案,如果
f(n)=O(f(n-1))
,那么
log f(n)=O(n)
,如果
log f(n)!=O(n)
(例如,
logn!=O(nlogn)!=O(n)
),然后
f(n)=O(f(n-1))
。伙计们,你们不认为渐近复杂性和算法分析是计算机科学/编程的一部分吗?!是不是应该是n>=c+1?@ArunKumar-啊,是的,没错。固定的!非常感谢@templatetypedef。