Thetha符号功能证明

时间:2018-10-18 13:15:24

标签: algorithm big-o

f(n)=4n²+ 3n-5 = Theta(n²)

我如何证明这一点?根据我的研究,这种表示应该像;

对于正常数c1,c2和n0使得  c1 * g(n)<= f(n)<= c2 * g(n)对于所有n> = n0,但我做不到。

3 个答案:

答案 0 :(得分:0)

第一步,让我们填写方程式,看看我们需要证明什么。

c1 * n² <= 4n² + 3n - 5 <= c2 * n² (for n >= n0)

我将证明其中一半,其余部分留给您。

假设

c1 = 3 (since it makes sense that 3n² <= 4n² for n >= n0)

我们需要证明

3n² <= 4n² + 3n - 5

这等同于证明

4n² + 3n  - 5 - 3n² >= 0 (for n >= n0)
n² + 3n - 5 >= 0

我们知道这个函数是抛物线,我们知道主导项(n²)的符号为正。所以它一定是山谷形的抛物线。

要找到合适的n0值,我们可以看一下抛物线的根。它们是-1.844和0.844(四舍五入)。因此,假设n0 = 2就足够了。简而言之:

n0 >= 2  
c1 = 3  
c2 = 5  

如果对证明的另一半应用相同的推理,则将得到n0的另一个界限。然后,您需要做的就是巩固两个界限。

答案 1 :(得分:0)

我们有HttpClient httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Clear(); httpClient.DefaultRequestHeaders.Add("Host", "assets.staples-static.com"); httpClient.DefaultRequestHeaders.Add("Pragma", "no-cache"); httpClient.DefaultRequestHeaders.Add("Cache-Control", "no-cache"); httpClient.DefaultRequestHeaders.Add("Upgrade-Insecure-Requests", "1"); httpClient.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"); httpClient.DefaultRequestHeaders.Add("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8"); httpClient.DefaultRequestHeaders.Add("Accept-Encoding", "gzip, deflate, br"); httpClient.DefaultRequestHeaders.Add("Accept-Language", "en-US,en;q=0.9"); var result = httpClient.GetAsync("https://assets.staples-static.com/NC1/pn/bui/20181010140727/styleguide/docs/css/atcOverlay.css").Result;


声明1: f(n) = 4n² + 3n - 5

所有f(n) <= 5n² for all n都有5n² - f(n) = n² - 3n + 5 = (n - 3/2)² + (11/4) > 0

声明2: n

我们有4n² <= f(n) for n >= 2代表f(n) - 4n² = 3n - 5 >= 0


从上面我们有 n >= 5/3 >= 2代表4n² <= f(n) <= 5n²

与所有n >= 2的大theta定义c1 * g(n) <= f(n) <= c2 * g(n)比较。

我们有n >= n0c1 = 4c2 = 5g(n) = n²

答案 2 :(得分:0)

4n²将比3n²快,但比5n²慢。仍要查找不等式所具有的n个值。

从图上可以看到n0 = 2。

enter image description here

您可以更正式地说明这一点,但是抛物线不会说谎。