question:
给你一个无线延伸的2D空间,由一个个方格构成,初始你在某一空格上,你可以往上,左,右走,但是不能往下走,并且走过的地方不能再走(已经下陷)。
求:N步有多少种可能???
answer:
因为不可以走同样的地方,f(n)表示走n步有多少种可能,所以:
1、往上走,进入f(n-1)
2、左,右走进入 g(n-1),之后可以往上进入f(n-2),或是继续前一步的方向走进入g(n-2)
=> f(n)=f(n-1)+2g(n-1)
g(n-1)=f(n-2)+g(n-2)
f(n-1)=f(n-2)+2g(n-2)
由上述三式可得
f(n)=f(n-1)+2f(n-2)+2g(n-2)
=f(n-1)+2f(n-2)+f(n-1)-f(n-2)
=2f(n-1)+f(n-2)
之后可以利用斐波那契数列的解法解决,注意中间变量的重复利用