我遇到了两个渐近函数证明。
f(n)= O(g(n))表示2 ^ f(n)= O(2 ^ g(n))
Given: f(n) ≤ C1 g(n)
So, 2^f(n) ≤ 2^C1 g(n) --(i)
Now, 2^f(n) = O(2^g(n)) → 2^f(n) ≤ C2 2^g(n) --(ii)
From,(i) we find that (ii) will be true.
Hence 2^f(n) = O(2^g(n)) is TRUE.
你能告诉我这个证据是否正确吗?有没有其他方法可以解决这个问题?
2.f(n)= O((f(n))^ 2)
如何证明第二个例子?在这里我考虑两种情况,一种是f(n)<1而另一种是f(n)> 1.
Note: None of them are homework questions.
答案 0 :(得分:0)
示例1的尝试证明看起来很好但是有缺陷。首先,“2^f(n) ≤ 2^C1 g(n)
”表示2^f(n) ≤ (2^C1)*g(n)
,一般都是假的。应该写成2^f(n) ≤ 2^(C1*g(n))
。在以“Now”开头的行中,您应该明确说出C2 = 2^C1
。声明“(ii)将是真的”是空的(没有(ii))。
像f(n) = 1/n
这样的函数反驳了示例2中的声明,因为没有常数N和C,因此对于所有n&gt; N,f(n)&lt; C *(F(N))2。证明:给出一些N和C.选择n> N,n> C。 f(n)= 1 / n = n *(1 / n 2)> C *(1/n²)= C *(f(n))²。因为N和C是任意选择的,这表明没有N和C的固定值使得对于所有n> 1。 N,f(n)&lt; C *(f(n))²,QED。
说“f(n)≥1”不足以证明第二项索赔;但如果你写“f(n)≥1表示所有n”或“f()≥1”,则可以证明。例如,如果对于奇数n,f(n)= 1 / n,对于偶数n,如果f(n)= 1 + n,则f(n)> 1甚至n>奇数n为0,小于1。为了证明f(n)= O((f(n))²)是假的,使用与前一段相同的证据,但附加规定n是偶数。
实际上,对于所有n,“f(n)≥1”强于确保f(n)= O((f(n))²所需的强度。设ε为任何固定的正值。无论ε多小,对于所有n,“f(n)≥ε”。 N'“确保f(n)= O((f(n))²)。为了证明这一点,取C = max(1,1 /ε)和N = N'。