斐波那契函数的优化
来源:互联网 发布:淘宝主图是怎么做的 编辑:程序博客网 时间:2024/05/17 03:48
Fib(n)
{
F[0]=0;F[1]=1;
for(int i=2;i<=n;i++)
F[i]=F[i-1]+F[i-2];
return F[n];
}
比较经典的算法之一,就是上面的伪码。
可是我们仔细研究就会发现,如果我们要求Fib(10000)的值,就会产生一个很长的数组,而我们最后返回的
是数组的最后一个数。如果n的值是指数级的话,比如求 n=2^64 对应的斐波那契函数值的话,将会产生一个
多么长的数组。
但是我们真的需要这么长的数组吗?
下面是数组存放的值
0 1 1 2 3 5 8 13 21 34 55 ...
也就是如果我们求第n个斐波那契函数值,只需要求前两个斐波那契函数值,就行了!
这样的话,在求第n个数的时候,n-3,n-4,n-5...这些数就已经没有用了!
这样我们也就没有必要在数组里面保存这些数了
那么,用长度为3的数组就可以求任意大的斐波那契数了!具体算法如下:
int Fib(int n)
{
F[0]=0;F[1]=1;
for(int i=2;i<=n;i++)
F[i%3]=F[(i-1)%3]+F[(i-2)%3];
return F[n%3];
}
- 斐波那契函数的优化
- 斐波那契数列的优化
- 斐波那契数列的优化
- 【传智播客郑州校区分享】斐波那契函数的优化
- 优化斐波那契
- 优化斐波那契
- 斐波那契的递归函数
- 斐波那契的递归函数
- 斐波那契函数的实现
- 斐波那契数列的递归优化实现
- 斐波那契(Fibonacci)的算法优化
- 斐波那契数列算法的优化设计
- 斐波那契数列求解的优化
- 关于斐波那契数列的优化
- 【递归算法】 斐波那契数列的备忘录优化
- 斐波那契数列的算法优化
- 斐波那契函数
- 斐波那契函数
- Unix Shell - Command Line Interface
- The c++ template metaprogramming( Chapter 11. A DSEL Design )
- sql server视图的作用
- 网络资源
- 网页创建滚动字幕——Dreamweaver
- 斐波那契函数的优化
- 经典十二著名定律
- ArcGIS Server9.3问题汇总
- 对于web应用开发应用,应该有一个框架。
- 试用QT中的多语言翻译
- Half of US kids will get food stamps, study says
- Inquiry of 6 bodies in Ohio focuses on 8-9 women
- Apache 虚拟主机配置笔记
- White(一)