问题描述:
排成一行的1~N,N一定大于等于2,开始在其中的某一个位置M上,机器人可以往左走,或者往右走,规定机器人只能走k步,而最终要求到达怕p位置,求有多少种走法。
思路:(前提:尝试的过程都是无后效性的)
1)M * N 的表格,搞清楚M、N各自的含义,此时需要一个可变参数能具体代表递归的状态,即该参数一旦确定,递归的状态就定了,
2)可变参数组成的表格。
3)先确定表格中变数最少,或者根本就没有变数的地方,然后根据这些已填参数思考是否能一步一步推导递归后面的复杂的参数。
机器人走路方法问题中:
1)可变参数为当前位置,以及剩下需要走的步数,相应的表格中的数据意义是:从开始的位置走到当前位置能包含的走法。
2)首先能确定的一定是表格的第一行,在一步都没有走的情况下,我们只能在原地,那就只有一种方法。假设在位置5,需要走9步
已走步数/当前位置 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
2 | 0 | 0 | 1 | 0 | 2 | 0 | 1 |
3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
7 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
由上图可知,走一步,分别能到达位置4,6且都只有一种方法,当再走一步时,此时能到达,3、5、7的位置,走法数分别为1、2、1。
我只需要按照这种方法一步一步将表格填到第九步,此时,在第九行的第五列的数值便是需要求的走法数。