有个问题问问大家!

alex2000 2003-09-12 10:27:33
在一个由M*N个小方格构成的矩形中,由左上第一个方格到右下最后一个方格有多少条路径(只能向下和向右走).这个题目应该怎么作?
...全文
32 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZhangYv 2003-09-16
  • 打赏
  • 举报
回复
如果你想打印路线,就需要模拟,这数学方法是帮不上忙的。
另外,递归或者回溯不是一类事,递归是程序实现的技术或者数学逻辑;回溯是算法,有时候利用递归,但并不依赖于递归技术。
topology18 2003-09-16
  • 打赏
  • 举报
回复
用组合数学的思想:因为总共一定要走M+N步,相当于在M+N步里面选M个向下走,剩下N个位置向右走。等于(M+N)!/(M!*N!)
limd 2003-09-16
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2219/2219017.xml?temp=.8320124 去瞧瞧,数学知识,看来我得重温一下了,哈哈
alex2000 2003-09-14
  • 打赏
  • 举报
回复
请高人赐教
lyff8neo 2003-09-13
  • 打赏
  • 举报
回复
同意zhangyv数学上经典的想法啊!
ZhangYv 2003-09-13
  • 打赏
  • 举报
回复
NONO,我是对的。C(M+N,N) = (M+N)!/(M!*N!)
去模拟完全没有必要,从数学的角度去思考是最稳妥的。

C(n,k)用C(n-1,k)+C(n-1,k-1)的公式求解效率更高。
frankzch 2003-09-13
  • 打赏
  • 举报
回复
m和n都很大的话路径数会非常多的,我在我的P4机器上试了一下,如果m=n=10,要运行半天
至于具体路径数前面ZhangYv的说法也是不对的,路径数没有一个准确的公式,只能通过一个递归函数求解
s(m,n)=2^(m+n-2)-(s(m,1)*2^(n-1)+......+s(m,n-1)*2^1)-(s(1,n)*2^(m-1)+......+s(m-1,n)*2^1)+m+n-2
很复杂
alex2000 2003-09-13
  • 打赏
  • 举报
回复
如果m和n都很大,用什么方法效率会更高?
alex2000 2003-09-13
  • 打赏
  • 举报
回复
我要打印出这些路径是不是只能用递归或者回溯?那个效率更高?有没有更好的方法?
FishCrazy 2003-09-13
  • 打赏
  • 举报
回复
这样看来数学确实很重要啊...............
frankzch 2003-09-13
  • 打赏
  • 举报
回复
不好意思我想复杂了,是(M+N-2)!/((M-1)!*(N-1)!)
ZhangYv是对的
我数学没学好
frankzch 2003-09-13
  • 打赏
  • 举报
回复
老是问重复的问题:
http://expert.csdn.net/Expert/topic/2219/2219017.xml?temp=.8320124
这里我和超超把程序都写出来了,没什么好说的了
zhangasdaaa 2003-09-13
  • 打赏
  • 举报
回复
c(N,M+N)
就是在M+N个位置选N个出来向下
alex2000 2003-09-13
  • 打赏
  • 举报
回复
我要打印出这些路径是不是只能用递归或者回溯?那个效率更高?有没有更好的方法?
COCO_AS 2003-09-12
  • 打赏
  • 举报
回复
0 0 0 0 ....1

1 1 1 1 ....1
1 2 3 4 ....n
1 3 6 10 ...
1 4 10 16 ...
.....m行

杨辉三角
如三行三列为6
三行四列为10
cygandti 2003-09-12
  • 打赏
  • 举报
回复
看迷宫问题的相关内容!
ZhangYv 2003-09-12
  • 打赏
  • 举报
回复
由左上第一个方格到右下最后一个方格共要走 M个右移,N个下移。也就是总共的步数是M+N步是由M个右移步,N个下移步组成,(M+N)!为各走法的全排列,排除重复的可得走法共(M+N)!/(M!*N!)

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧