证明声明的大O.

时间:2011-09-20 01:34:58

标签: math big-o proof

我很难证明所有n^k O(2^n) klg2。我尝试了双方k*lgn=n并{{1}},但这是错误的。我不确定我怎么能证明这一点。

2 个答案:

答案 0 :(得分:3)

要显示n k 为O(2 n ),请注意

  

n k =(2 lg n k = 2 k lg n

所以现在你要找到一个n 0 和c,这样对于所有n≥n 0

  

2 k lg n ≤c2 n

现在,让我们让c = 1,然后考虑当某些m为n = 2 m 时会发生什么。如果我们这样做,我们得到

  

2 k lg n ≤c2 n = 2 n

     

2 k lg 2 m ≤2 2 m

     

2 km ≤2 2 m

并且,由于2 n 是单调递增函数,这相当于

  

km≤2 m

现在,让我们完成一切。让我们假设我们让m = max {k,4},所以k≤m。因此,我们有

  

km≤m 2

我们也有

  

m 2 ≤2 m

因为对于任何m≥4,m 2 ≤2 m ,我们通过选择m确保m = max {k,4}。结合这个,我们得到了

  

km≤2 m

这相当于我们想要在上面展示的内容。因此,如果我们选择任何n≥2 m = 2 max {4,k} ,那么n k ≤2< SUP>名词。因此,通过big-O表示法的形式定义,我们得到n k = O(2 n )。

认为这个数学是正确的;如果我错了,请告诉我!

希望这有帮助!

答案 1 :(得分:1)

我还不能评论,所以我会回答这个问题。

您应该尝试找到满足此处找到的大O符号的正式定义的n0M,而不是减少等式:{{3} }

n0=M=k的某些内容可能有用(我没有写出来,所以也许这不起作用,那只是为了给你一个想法)