簡體   English   中英

"證明 f(n) = Θ(g(n)) 當且僅當 g(n) = Θ(f(n))"

[英]Prove that f(n) = Θ(g(n)) iff g(n) = Θ(f(n))

我遇到了問題:

f(n) are asymptotically positive functions. Prove f(n) = Θ(g(n)) iff g(n) = Θ(f(n)). 

我發現的一切都表明該聲明無效。 例如,我遇到的一個答案是:

f(n) = O(g(n)) implies g(n) = O(f(n))
f(n) = O(g(n)) means g(n) grows faster than f(n). It cannot imply that f(n) grows
faster than g(n). Hence not true.

另一種說法是:

 If f(n) = O(g(n)) then O(f(n)). This is false. If f(n) = 1 and g(n) = n 
 for all natural numbers n, then f(n) <= g(n) for all natural numbers n, so
 f(n) = O(g(n)). However, suppose g(n) = O(f(n)). Then there are natural
 numbers n0 and a constant c > 0 such that n=g(n) <= cf(n) = c for all n >= 
 n0 which is impossible.

我知道我的確切問題與我找到的示例之間存在細微差別,但我只能提出無法證明這一點的解決方案。 我認為它無法被證明是正確的,還是我正在查看一些細節?

你可以從這里開始:

正式定義:f(n) = Θ (g(n)) 表示存在正常數 c1、c2 和 k,使得 0 ≤ c1g(n) ≤ f(n) ≤ c2g(n) 對於所有 n ≥ k .

因為你有那個iff ,你需要從左邊開始證明右邊,然后從右邊開始證明左邊。

左 -> 右

我們認為:

f(n) = Θ(g(n))

我們想證明

g(n) = Θ(f(n))

因此,我們有一些正常數c1c2k使得:

0 ≤ c1*g(n) ≤ f(n) ≤ c2*g(n), for all n ≥ k

fg之間的第一個關系是:

c1*g(n) ≤ f(n)     =>     g(n) ≤ 1/c1*f(n)    (1)

fg之間的第二個關系是:

f(n) ≤ c2*g(n)     =>     1/c2*f(n) ≤ g(n)    (2)

如果我們結合(1)(2) ,我們得到:

1/c2*f(n) ≤ g(n) ≤ 1/c1*f(n)

如果您考慮c3 = 1/c2c4 = 1/c1 ,它們存在並且是正的(因為分母是正的)。 這對於所有n ≥ k都是正確的(其中k可以相同)。

所以,我們有一些正常數c3c4k使得:

c3*f(n) ≤ g(n) ≤ c4*f(n), for all n ≥ k

這意味着g(n) = Θ(f(n))

類似於右-> 左。

暫無
暫無

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

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