问题:青蛙每次只能跳一层或两层,问跳到n层台阶的方法有几种?
实验与分析:
我们先来做几次实验,首先我们分别列举台阶为1层和两层的情况:
一层时:
当前只开放了一层台阶,因此青蛙只能选择跳一次
二层时:
此时开放了两层台阶,青蛙多了一次跳两阶的选择
目前我们掌握了可以从地面到达一、二层的全部情况
再来看第三层:
为了方便理解,我将可能分成了两部分
此时我们可以看到,1部分的起点在二层,都是通过跳一阶到达三层的,2部分的起点则在一层,开放了第三层台阶青蛙就可以通过跳两阶到达三层。
又知,前两次实验分别获得了到达一层和二层的全部可能。
结论:
将两个分析结合起来,想必聪明的你,已经得到了一个猜想:
既然青蛙一次只能跳一阶或两阶,那么跳到第n阶的可能,就是跳到n的前一阶和跳到n前两阶可能的和。
(注:n前两层如果通过跳一阶的方式到达n层,那么这种可能必将 和 n前一层跳一阶这种可能重合。)
也就是跳到n层的台阶的方法数s(n)= s(n-1)+s(n-2)
性质很像第三数等前两数只和的斐波那契数。
延伸:
懂得了青蛙跳台阶的内部逻辑,我们可以通过一段程序来实现这一计算过程: