簡體   English   中英

如何證明漸近符號

[英]How to Prove Asymptotic Notations

我想證明以下陳述

2^(⌊lg n⌋+⌈lg n⌉)∕n ∈ Θ(n)

我知道要證明這一點,我們必須找到常量c1>0c2>0n0>0使得

c1.g(n) <= f(n) <= c2.g(n) for all n >= n0

換句話說,我們必須證明f(n) <= cg(n) and f(n) >= cg(n)

問題是如何證明左手邊(2^(⌊lg n⌋+⌈lg n⌉)∕n)

謝謝

您可以先擴展指數。 它等於n1 * n2 / n,其中n1 <= n <= n2、2 * n1> n和n * 2> n2。 其余的應該很容易。

這是上限的推導:

2^(⌊lg n⌋+⌈lg n⌉)/n
= 2^(2⌊lg n⌋+1)/n 
<= 2^(2 lg n + 1)/n
= 2^(2 lg n) 2^(1) / n
= 2 n^2 / n
= 2 n
= O(n)

因此,我們知道您的函數可以被2 * n限制。 現在我們執行下限:

2^(⌊lg n⌋+⌈lg n⌉)/n
= 2^(2⌈lg n⌉ - 1) / n
>= 2^(2 lg n - 1)/n
= 2^(2 lg n) 2^(-1) / n
= 1/2 n^2 / n
= 1/2 n
= O(n)

現在我們知道您的函數可以被n / 2限制。

在gnuplot上檢查; 這些答案看起來又好又緊。 這是使用floor()和ceiling()函數定義的純代數解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM