您的位置:首页 > 其它

斐波那契数列时间复杂性的近似证明和精确证明(转)

2013-09-29 01:07 239 查看
斐波那契数列可以派生出很多应用,其中,我们知道它的时间复杂性是指数级的,现在就来粗略地证明一下:

斐波那契数列递推式:

F(n)=F(n-1)+F(n-2)

F(1)=F(2)=1

粗略证明可以利用Decision_Tree,为了更直观,我引用另一个恒等函数 f(x)=0 ;x=1,2,3,4,5,............

所以斐波那契数列递推式变形如下:

F(n)=F(n-1)+F(n-2)+f(n)

F(1)=F(2)=1

画出Decision_Tree

// F(n)= f(n)

// / \

// f(n-1) f(n-2)

// / \ / \

// f(n-2) f(n-3) f(n-3 f(n-4)

// . . . .

// . . . f(2)

// / \ \

// f(1) f(2) 1

// / \ /\

// 1 1 1 1

因为f(n)恒等于0,所以F(n)等于叶子结点的总和乘以Theta(1).最长链路是最左子树,最短链路是最右子树。

所以有:2^(n/2)<F(n)<2^n,即F(n)=theta(2^n).

精确证明:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: