今天蹲大的时候,想着这道题,逆向想通了,记下来。
题目:
有N级阶梯,往上走的时候,有两种走法:走1级或走2级。问,蹬上N级阶梯,总共有多少总解法。
正向想很容易陷进去前面走的是否有重复、交叉一类的思维陷阱中。逆向就好想了:
我们先假设:N级阶梯总共有k(n)中解法。
人在走最后一步的时候,只有两种解法:走一步或走两步。所以,k(n)就和k(n-1)和k(n-2)有关。即:
k(n) = :
1. k(n-1)后,再往上走一步。由于此时只有“走一步”这一种解法,所以仍然是k(n-1)种解法;
2.k(n-2)后,再往上走两步。同上,此时只有“走两步”这一种解法(如果:往上连续走两个一步,那最后一步就是2步而不是1步了,就该归到k(n-1)中了),所以,此时还是k(n-2)种解法;
因此,可以得到递推公式:
k(n) = k(n-1) + k(n-2)
其中,k(1) = 1, k(2) = 2.
这个数列是啥?就是斐波那契数列。