求20*20的网格中,从左上角到右下角有多少走法
原题如下
动态规划基础
把网格看成二维矩阵,a[0][0]为左上角起点 ,a[20][20]为右下角终点
从起点到第一行任何一个点都只有一种路线,即a[0][j]=1
同样的,到第一列任何一个点也只有一种路线,即a[i][0]=1
到任何一个点的路径数a[i][j]=a[i-1][j]+a[i][j-1],因为到这个点只有这两条路可以走
依次计算即可
python 代码如下
import numpy as np
a=np.zeros([21,21])
for i in range(0,21):
a[0][i]=1
a[i][0]=1
for i in range(1,21):
for j in range(1,21):
a[i][j]=a[i-1][j]+a[i][j-1]
print(a)
print(a[20][20])