一道难题,谁能给出数学证明和代码实现呀?

myoswin7 2009-03-19 11:51:26




1) 如图4*4的矩阵,A在左下角,B在右上角。如要从 A点走到B点,每次只能向右或者向上走,问有多少种走法。

2) n*n的矩阵呢

3) n*m的矩阵呢
...全文
138 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ttklboy 2009-03-22
  • 打赏
  • 举报
回复
你是说用穷尽法列出所有的可能然后计算出来么?
ttklboy 2009-03-22
  • 打赏
  • 举报
回复
既然有递推公式 那还不简单啊
你的图我看不到 不知道到底是走m步还是m-1步,我就当m步算了啊


#include<iostream>
using namespace std;
int main(void)
{
int m,n;
int tn(int,int);
cin>>m>>n;
cout<<tn(m,n);
return 0;
}
int tn(int m,int n)
{
if(m==0&&n==0)
{
return 0;
}
else if(m==0||n==0)
{
return 1;
}
else
{
return tn(m-1,n)+tn(m,n-1);
}
}
ttklboy 2009-03-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 myoswin7 的回复:]
引用 4 楼 ttklboy 的回复:
不好意思 似乎应该是C(m+n-2,m-1)
证明如下 从左下角走到右上角,只能向右或向上 那么说一共会走(m+n-2)步,其中向上走了n-1步,向右走了m-1步。在(m+n-2)步中选出m-1个位置向右走,即能确定所走的路线。


哦,谢谢你呀
[/Quote]
那就给分吧
myoswin7 2009-03-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 ttklboy 的回复:]
不好意思 似乎应该是C(m+n-2,m-1)
证明如下 从左下角走到右上角,只能向右或向上 那么说一共会走(m+n-2)步,其中向上走了n-1步,向右走了m-1步。在(m+n-2)步中选出m-1个位置向右走,即能确定所走的路线。
[/Quote]

哦,谢谢你呀
ttklboy 2009-03-20
  • 打赏
  • 举报
回复
不好意思 似乎应该是C(m+n-2,m-1)
证明如下 从左下角走到右上角,只能向右或向上 那么说一共会走(m+n-2)步,其中向上走了n-1步,向右走了m-1步。在(m+n-2)步中选出m-1个位置向右走,即能确定所走的路线。
myoswin7 2009-03-20
  • 打赏
  • 举报
回复

递推公式f[m,n]=f[m-1,n]+f[m,n-1]
组合公式是C(m+n,m)
myoswin7 2009-03-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ttklboy 的回复:]
引用 5 楼 myoswin7 的回复:
引用 4 楼 ttklboy 的回复:
不好意思 似乎应该是C(m+n-2,m-1)
证明如下 从左下角走到右上角,只能向右或向上 那么说一共会走(m+n-2)步,其中向上走了n-1步,向右走了m-1步。在(m+n-2)步中选出m-1个位置向右走,即能确定所走的路线。


哦,谢谢你呀

那就给分吧
[/Quote]

不好意思,刚才我把图画错了,貌似误导你了。能给出算法实现吗?
star_virgo 2009-03-20
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20090319/20/991b6833-cc21-4efd-8d11-bb1017f8de02.html
ttklboy 2009-03-19
  • 打赏
  • 举报
回复
C(m+n,m)
ttklboy 2009-03-19
  • 打赏
  • 举报
回复
排列组合问题

64,439

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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