为f(n)找到上限
我想了解基本编程的概念。我遇到了两个例子。为f(n)找到上限
情形1:查找上限的F(N)= 3N + 8
它很清楚的是F(N) - > 3时正>无限的。 所以3n + 8应该小于或等于4n。因此,我可以采取C作为4.
情形2:查找上限F(N)的= N^4 100(N^2)50
这里F(N)应小于2(n^4)对于所有n = 11。他们如何得出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的值。
谢谢。但我无法理解这个n^4>(111 * n^2 + 50)。你如何得到111? – arunprakashpj
通过经常更换,很难找到n的值。还有其他方法吗?或者它是唯一的方法.. – arunprakashpj
@arunprakashpj - 在这种情况下并不难,只需用n替换n^2,然后求解那个四次方程。那么你会有n^2 = t,找到'n'。然后,用波浪曲线方法解决不平等问题。另外,如果你是一名数学家,你会知道更多更好的技巧。这是我能代表我做的。此外,数学家/更好的算法编码人员可能会使用更好的方法,但是,我不认为你需要做更深入的研究。直到高中/大学毕业的数学知识就足够了,就像我的情况一样。 –
你的意思是大O的复杂性? –
是的。我想了解大O复杂性.. – arunprakashpj
基本上没有人,但一个数学家做这样的大O分析。你计算循环。 –