找到具有N和M单位的线网中的最短路径

时间:2014-01-15 12:36:58

标签: algorithm

假设您有一个N个M单位长的金属丝网,由单位正方形和边缘的金属丝组成。 (所以有N + 1根平行线都是M长,并且垂直于这些,M + 1全N长)。

一只蚂蚁从这个网格的左下角开始(坐标(0,0)并在导线上爬行最短距离到达右上角(N,M)。多长时间了最短的路线。

有多少不同的最短路线? (也就是说,根据N和M找到一个公式)你可能想要尝试N和M的小值,看看你是否可以弄清楚(N,M)的数字与(N,M)的数量有什么关系? -1)和(N-1,M)

2 个答案:

答案 0 :(得分:0)

最短路径为N + M个单位长,此类路线的数量为(n + m)Cn或(n + m)Cm,其中nCr为二项式系数

答案 1 :(得分:0)

要获得从最底部到最高点的最短路径,如果存在,则需要仅行进两条路径,即顶部和顶部。对。

因此,递归关系是: -

paths(N,M) = paths(N-1,M) + paths(N,M-1).

使用动态编程解决重现问题。

更确切地说: -

总路径等于二进制数,其中N + M位具有精确N 0'sM 1's,即(M+N) C N(从M + N项中选择N项)