如果一个人只能向东和向南移动,那么在一个3*3的网格中,从初始点(0,0)到终点(2,2)的总路径数是多少。
您需要走4步。请将其中的2步朝东走。
1) 从点A(0, 0)到点B(2, 2)创建一个向量AB(B_x-A_x, B_y-B_y)。这个向量存在于仿射空间中,我们将为其引入自定义坐标轴“南”和“东”。因此,我们得到的向量是`AB = 2 "south" + 2 "east"`。
要找出可能的路径:Permutations[{"south", "south", "east", "east"}]
{{"south", "south", "east", "east"}, {"south", "east", "south", "east"}, {"south", "east", "east", "south"}, {"east", "south", "south", "east"}, {"east", "south", "east", "south"}, {"east", "east", "south", "south"}}
Length[Permutations[{"south", "south", "east", "east"}]]
6
2) 将问题化简为代数形式。这是一个组合问题,其中二项式系数 4 选择 2
将给出答案,因为您可以总共进行 2 种不同的操作 4 次。
计算方法:Binomial[4, 2]
6
3) 绘制一个图形:
然后得出结论,只有6种方法可以完成它。
说明:我们可以通过仅存储向下方向的步骤来编码路径。也就是说,我们只编码选择向下走一步的列:
例如:0 1 1 3
表示我们按照以下方式前进:
0123 = columns
v v = down
>V > = right
v>v
X
/ n-1+m-1 \
| |
\ n-1 /
n-1
个元素的不同方法等于Binomial(n-1+m-1,n-1)
呢?我认为这并不明显。请解释一下你是如何得出这个公式的,而不使用我们问题的解决方案。 - UmmaGumma