2015-08-08 44 views
3

我想了解基本编程的概念。我遇到了两个例子。为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?我知道替代不会是更好的情况。

如果有人解释找到上限的过程,这将是非常棒的。

+1

你的意思是大O的复杂性? –

+0

是的。我想了解大O复杂性.. – arunprakashpj

+0

基本上没有人,但一个数学家做这样的大O分析。你计算循环。 –

回答

2

这是一种检查方法,即通过替代或点击试验的方法。

他们检查了条件时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的值。

+0

谢谢。但我无法理解这个n^4>(111 * n^2 + 50)。你如何得到111? – arunprakashpj

+0

通过经常更换,很难找到n的值。还有其他方法吗?或者它是唯一的方法.. – arunprakashpj

+1

@arunprakashpj - 在这种情况下并不难,只需用n替换n^2,然后求解那个四次方程。那么你会有n^2 = t,找到'n'。然后,用波浪曲线方法解决不平等问题。另外,如果你是一名数学家,你会知道更多更好的技巧。这是我能代表我做的。此外,数学家/更好的算法编码人员可能会使用更好的方法,但是,我不认为你需要做更深入的研究。直到高中/大学毕业的数学知识就足够了,就像我的情况一样。 –