算法-斐波那契数

2018年9月29日 16:20

斐波那契数列

斐波那契数列及其相关算法问题

引入

Leonardo Fibonacci 在描述兔子生长的数目时用上了这个数列

分析

假设在n月有兔子总共a对,n+1月总共有b对。在n+2月必定总共有a+b对:因为在n+2月的时候,前一月(n+1月)的b对兔子可以存留至第n+2月(在当月属于新诞生的兔子尚不能生育)。而新生育出的兔子对数等于所有在n月就已存在的a对。

所以有

\[\begin{align*} F(N)= \begin{cases} 1 & x=1,2 \\ F(N-1)+F(N-2) & x > 2 \end{cases} \end{align*}\]

当可以生育的间隔延长为时间T时(原问题间隔为3,即第三个月才能生育),这个函数将变为

\[\begin{align*} F(N)= \begin{cases} 1 & x=1,2,...,T-1 \\ F(N-1)+F(N-T+1) & x > T-1 \end{cases} \end{align*}\]

算法问题

Leetcode-爬楼梯

BUAACODING-间隔为5

BUAACODING-过台阶

BUAACODING-兔子会死亡