一个高中就学过的问题:
现有一个m * n的网格,从最左上角出发,每次只能向右或者向下移动一格,问有多少种不同的方法可以到达最右下角的格子?
可以用高中学过的排列组合来解,见下图一个6*6的格子,从A走到B:

要从A到B,必须向左走6步,向下也走6步,一共12步,我们可以从向下走入手,向下走的方法即从12步里选出6步向下,一共有C(12,6)种,因此从A到B的路线共有组合数C(12,6)种。
对于m*n的格子,一样的,就是从m+n步中选出m步向下或n步向右,因此为C(m+n,m)=C(m+n,n)种。

本文介绍了一种计算从网格左上角到右下角不同路径数量的方法,利用排列组合原理和动态规划解决该问题,并提供了三种不同的编程实现方案。
2万+

被折叠的 条评论
为什么被折叠?



