作业帮 > 数学 > 作业

小明爬楼梯可爱的小明特别喜欢爬楼梯,他有的时候一次爬一个台阶,有的时候一次爬两个台阶,有的时候一次爬三个台阶.如果这个楼

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/28 02:54:34
小明爬楼梯
可爱的小明特别喜欢爬楼梯,他有的时候一次爬一个台阶,有的时候一次爬两个台阶,有的时候一次爬三个台阶.如果这个楼梯有36个台阶,小明一共有多少种爬法呢?
共有2082876103种,其实这是一道典型的递归编程题,与其说是数学题,不如说是属于计算机科学的范畴.
设f(n)表示n级台阶的爬法数目,则前几个f值可以穷举得f(1)=1,f(2)=2,f(3)=4.
n>=4后,有如下递归关系:f(n)=f(n-1)+f(n-2)+f(n-3),因为把爬n级台阶的最后一步分类,则f(n-1)代表最后一步是爬1级的所有走法,f(n-2)代表最后一步是爬2级的所有走法,f(n-3)代表最后一步是爬3级的所有走法,因此关系式成立.
用计算机迭代,得36级台阶的爬法数目为f(36)=2082876103种.
Matlab语言程序:
f=zeros(1,36);
f(1)=1; f(2)=2; f(3)=4;
for i=4:36
f(i)=f(i-1)+f(i-2)+f(i-3);
end
f(36)
如果想求解析解,可以考虑特征方程x^3=x^2+x+1的根为X,Y,Z,则数列的通解为
f(n)=A*X^n+B*Y^n+C*Z^n,通过f(1),f(2),f(3)的值,可以求出待定系数A,B和C.不过看来是挺麻烦的,因为特征方程的解是一个无理实数,和两个共轭虚数.