斐波那契数列在软件开发中一则应用

计算机相关专业的同学应该都听说过斐波那契数列

斐波那契数列是这样的一组数列:1、1、2、3、5、8、13、21、…… 

如果设F(n)为该数列的第n项(n∈N+),那么斐波那契数列的生成公式可以表示为:

 

F(0) = 0,F(1)=F(2)=1,F(n)=F(n-1)+F(n-2) (n≥3)

计算机教材上一般会用斐波那契数列来出编程练习题,如:

习题3.1 编写一个程序求长度为n的斐波那契数列并输出。

 

最简单的解法就是根据公式编写一个递归的程序,但是由于递归的过程存在大量重复计算,以及深度递归会消耗大量栈空间,所以递归的程序一般在计算到F(100)之前就崩掉了。

用简单的动态规划来解这个问题就会高效很多。

 

那么斐波那契数列在软件开发中有什么用途呢,这里列举一则:

在有状态的网络程序中,一般都要考虑通讯连接意外断掉之后的重连(例如常见的IM如QQ、飞信等在连接断掉的时候都会自动重连),然而频繁地重试连接会造成不必要的资源消耗,那么就需要一个重试延迟,即重连不成功的情况下延迟一段时间后再重试,延迟时间的设定就很有讲究了。

常见的造成连接中断的情况有两种:

1. 暂时性的网络波动,能够立即恢复;

2. 网络故障或远端服务器故障,需要较长时间才能恢复。

上面所说的较长时间到底多长也是不确定的,30秒钟?1分钟?5分钟?1小时?

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值