XiaoHui.net 笑汇程序员论坛首页
工作并快乐着,职业并休闲着
寻梦的岁月从不言辛苦几许,
不问收获几多……
» 游客:  申请新用户 | 登录 | 会员 | 统计 | 帮助 » XiaoHui.Net 笑汇程序员论坛 | 纯文字版 | 全站索引 | XiaoHui.com


[算法讨论] 关于程序性能的问题!!

RSS 订阅当前论坛  

上一主题 下一主题
     

标题: [算法讨论] 关于程序性能的问题!!  
 
gwq85387566
版主
Rank: 7Rank: 7Rank: 7



UID 2605
精华 0
积分 151
帖子 151
阅读权限 100
注册 2006-4-1
来自 岳阳
状态 离线
关于程序性能的问题!!

人们熟悉的Fibonacci菲波那契数列:
F(0)=0
F(1)=1
F(n)=F(n-1)+F(n-2)      n>1
如果在小于47的字变量下求值,函数可以用单纯的int类型来表示。
用以下几中方法来实现计算
int fibol(int n)
{
    if(n==0)
      return 0;
    if(n==1)
      return 1;
      return fibol(n-1)+fibol(n-2);
}
int fibo2(int n)
{
    int a=0,c;
      for(int b=1,c,i=2;i<=n;++i)
         c=a+b,a=b,b=c;
           return c;
}
int fibo3(int n)
{
     vector<int>v(n+1,0);v[1]=1;
        for(int i=2;i<=n;++i)
          v=v[i-1]+v[i-2];
        return v[n];
}
int fibo4(int n)
{
    return(pow((1+sqrt(5.0))/2,n)-pow((1-sqrt(5.0))/2,n))/sqrt(5.0);
}
讨论那种方法更好,在那种情况下适合用那种方法!!!??
如果有更好的方法,请列出来并给予原因!!!
2006-4-19 11:30#1
查看资料  Blog  发短消息  ICQ 状态  顶部
 
麦斯
版主
Rank: 7Rank: 7Rank: 7



UID 1285
精华 0
积分 1678
帖子 1678
阅读权限 100
注册 2002-4-24
状态 离线
可以把递归式化成递推式直接求解,不过需要高精度计算
2006-4-22 15:24#2
查看资料  Blog  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题  


 


所有时间为 GMT+8, 现在时间是 2008-12-3 00:54 Powered by Discuz! 4.1.0 清除 Cookies - XiaoHui.Net 笑汇程序员论坛 - Archiver