24小时热门版块排行榜    

查看: 1857  |  回复: 5
本帖产生 3 个 程序强帖 ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

holmescn

金虫 (正式写手)

[交流] Euler 工程 第十五题:从左上角到右下角有多少条路? 已有4人参与

哈哈,题目越来越有意思了。下面这个题是个排列组合的题目。当然,不用那东西 也能解出来。大家来玩玩吧!

说有一个2x2的格子,从左上角到右下角有6条可行的路线(要求不要回头)如图:



那么一个20x20的格子有多少条路线呢?

记得,不只可以写代码,还可以做分析。大家一起来玩吧!

[ Last edited by holmescn on 2011-5-22 at 20:40 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sudo

木虫 (正式写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+3): 辛苦了! 2011-05-23 19:23:33
引用回帖:
Originally posted by huycwork at 2011-05-22 22:41:39:
点A(n, n)的通道数是A(n-1, n)和A(n, n-1)条数之和,即A(n, n) = A(n-1, n)+A(n, n-1)。这个题目就是咱曾经做过的f(m, n) = f(m-1, n) + f(m, n-1)的题目,只是初始条件是f(1, n) = 1,f(m, 1) = 1。
不过,这个 ...

2楼应该得程序强帖啊~!数学解最美~

我再详细补充解释一下吧:

格子数m行n列的时候,所谓的从左上角到右下角的路线,需要且仅仅需要经过m+n条线段(否则走的就是“弯路”),其中n条是横线段,m条是竖线段,而且,如果能确定哪几步经过的是横线段,那么另外的步骤必然走的是竖线段,故所有组合数为

C(m+n, m) 或者 C(m+n, n)

对于题目中的行列格子数相等的情况,答案简化为C(2n, n)

对于20x20的格子,路线总数为C(40, 20)

再形象一点说明,以1楼2x2的格子为例,起点到终点,经过的线段数为4条,其中2条横线段,2条竖线段,那么组合可以为:

横,横,竖,竖
横,竖,横,竖
横,竖,竖,横
竖,横,横,竖
竖,横,竖,横
竖,竖,横,横

一共为C(4, 2)=(4*3)/(2*1)=6种走法~

PS:囧,刚才没看见3楼,上面当我什么都没说吧.....

[ Last edited by sudo on 2011-5-23 at 13:51 ]
5楼2011-05-23 13:47:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 6 个回答

huycwork

金虫 (著名写手)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+2): 谢谢参与交流! 2011-05-22 23:33:29
点A(n, n)的通道数是A(n-1, n)和A(n, n-1)条数之和,即A(n, n) = A(n-1, n)+A(n, n-1)。这个题目就是咱曾经做过的f(m, n) = f(m-1, n) + f(m, n-1)的题目,只是初始条件是f(1, n) = 1,f(m, 1) = 1。
不过,这个题是传说中的高考题,题解为m+n里面选出m或n条边的组合数C(m+n)m。
漩涡的中心有一块空地,空空的。
2楼2011-05-22 22:41:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

huycwork

金虫 (著名写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
余泽成(金币+3, 程序强帖+1): 鼓励交流! 2011-05-22 23:34:32
C++实现的各种解法:
CODE:
#include
enum {BUFSZ = 20};
//迭代f(m, n) = f(m, n-1)+f(m-1, n)的版本
double eular15(int m = 20, int n = 20){
        if(m < n){
                std::swap(m, n);
        }
        double buf[BUFSZ];
        for(int i = 0; i < BUFSZ; ++i)
                buf[i] = 1;
        for(int i = 0; i < n; ++i){
                buf[i] += buf[i];
                for(int j = i; j < m - 1; ++j){
                        buf[j+1] = buf[j] + buf[j+1];
                }
        }
        return buf[m-1];
}
//组合数直接计算版本,m+n里面选出m个和选出n个是一样的
double _eular15(int m = 20, int n = 20){
        double r1 = 1, r2 = 1;
        for(int i =  n + 1; i <= m+n; ++i){
                r1 *= i;
        }
        for(int i = 1; i <= n; ++i){
                r2 *= i;
        }
        return r1/r2;
}
int main(){
         std::cout<          std::cout<<_eular15()< }

漩涡的中心有一块空地,空空的。
3楼2011-05-22 22:48:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖
jjdg(金币+2): 辛苦了 2011-05-23 01:32:29
余泽成(程序强帖+1): 2011-05-23 19:22:42
分析,所有到a点的方法是"到b点方法+到c点方法之和"
递归分析回去发现,这正是matlab中的pascal矩阵


于是我偷懒了

matlab code
CODE:
%% How many routes are there through a 20×20 grid?
function result = euler15()
tic;
a = pascal(21);
result = a(end,end);
toc;
end

结果+时间
CODE:
% Elapsed time is 0.008664 seconds.
% ans =
%               137846528820

[ Last edited by libralibra on 2011-5-23 at 00:21 ]
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
4楼2011-05-23 00:19:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 301求调剂 +6 yy要上岸呀 2026-03-17 6/300 2026-03-17 23:58 by 星空星月
[考研] 299求调剂 +4 △小透明* 2026-03-17 4/200 2026-03-17 20:09 by peike
[考研] 277调剂 +5 自由煎饼果子 2026-03-16 6/300 2026-03-17 19:26 by 李leezz
[硕博家园] 湖北工业大学 生命科学与健康学院-课题组招收2026级食品/生物方向硕士 +3 1喜春8 2026-03-17 5/250 2026-03-17 17:18 by ber川cool子
[考研] 312求调剂 +4 陌宸希 2026-03-16 5/250 2026-03-17 17:09 by ruiyingmiao
[考研] 290求调剂 +6 孔志浩 2026-03-12 11/550 2026-03-17 14:41 by 周舟舟77
[考研] 08工科 320总分 求调剂 +4 梨花珞晚风 2026-03-17 4/200 2026-03-17 13:38 by houyaoxu
[考研] 考研调剂 +3 淇ya_~ 2026-03-17 5/250 2026-03-17 09:25 by Winj1e
[考研] 267一志愿南京工业大学0817化工求调剂 +6 SUICHILD 2026-03-12 6/300 2026-03-17 09:24 by 雾散后相遇lc
[考研] 11408 一志愿西电,277分求调剂 +3 zhouzhen654 2026-03-16 3/150 2026-03-17 07:03 by laoshidan
[考研] 一志愿985,本科211,0817化学工程与技术319求调剂 +5 Liwangman 2026-03-15 5/250 2026-03-16 17:10 by 我的船我的海
[考研] 26考研一志愿中国石油大学(华东)305分求调剂 +3 嘉年新程 2026-03-15 3/150 2026-03-15 13:58 by 哈哈哈哈嘿嘿嘿
[考研] 070305求调剂 +3 mlpqaz03 2026-03-14 4/200 2026-03-15 11:04 by peike
[考研] 288求调剂 +4 奇点0314 2026-03-14 4/200 2026-03-14 23:04 by JourneyLucky
[考研] 本科南京大学一志愿川大药学327 +3 麦田耕者 2026-03-14 3/150 2026-03-14 20:04 by 外星文明
[考研] 336求调剂 +6 Iuruoh 2026-03-11 6/300 2026-03-13 22:06 by JourneyLucky
[考研] 26调剂/材料/英一数二/总分289/已过A区线 +6 步川酷紫123 2026-03-13 6/300 2026-03-13 21:59 by 星空星月
[考研] 26调剂/材料科学与工程/总分295/求收留 +9 2026调剂侠 2026-03-12 9/450 2026-03-13 20:46 by 18595523086
[考研] 材料与化工085600调剂求老师收留 +9 jiaanl 2026-03-11 9/450 2026-03-13 20:22 by JourneyLucky
[考研] 工科材料085601 279求调剂 +8 困于星晨 2026-03-12 10/500 2026-03-13 15:42 by ms629
信息提示
请填处理意见