寻找 f(n) 的上限

FInding upperbound for a f(n)

我想从基础上理解编程的概念。我遇到了两个例子。

case1:找到f(n)=3n+8

的上限

很明显当n->无限时f(n)->3。 所以 3n+8 应该小于或等于 4n 。所以我可以把 c​​ 当作 4.

case2:找到f(n)=n^4 +100(n^2)+50

的上限

对于所有 n = 11,这里的 f(n) 应该小于 2(n^4)。他们是如何得出 n=11 的?我知道替换不会更好。

如果有人解释一下寻找上限的过程就太好了。

这是一种检查方法,即替代法或试探法。

他们检查了 n^4 +100(n^2)+50 < 2*(n^4 时的条件。

或者换句话说,n^4 > (100 * n^2 + 50)

当你解决它时,结果将是 11。

也就是说,对于 n >= 11。n^4 +100(n^2)+50 < 2*(n^4)

这个不好计算,你可以用Wolfram Alpha搜索一下。

这也可以通过求解 n 值的不等式来解决。

n^4 > (100 * n^2 + 50)
n^4 - 100 * n^2 - 50 > 0
// find the roots for this equation and then 
// you'll be easily able to deduce the value of n using wavy-curve method.

检查 here for how to solve an inequality using wavy-curve method,但要尝试此操作,您需要找到求解给定方程式的 n 值。