精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-08-14
的确、高中还专门有这个题的数学练习上
|
|
返回顶楼 | |
发表时间:2011-08-15
cttnbcj 写道 y13872888163 写道 cttnbcj 写道 ty_fzpb 写道 cttnbcj 写道 3*2 ,一共要走5步。
我可以设为 左3 + 上2 当我任意给定走方格子中向上2步格子时,然后必须任选向左3个格子=C(3,5) 应该就是LZ你要的答案。。。。 正解 典型的插空法 对M*N格子 C(N-1,M+N-2) 幸亏这几天跟几个小中学弟弟学习了几天,很像他们教过我一道题:书架有N个空格,把书(分相同和不同情况)放入这些空格中,一共几张放法? 真奇怪现在公司的面试官都是穷逼吗?连小中学生的题目也要山寨过来。。。。。。。 小2再来几个娱乐贴吧 我要是多发了,码码们幼小的心灵,承受不了。。。。。。 做码码的第一要素就是小强般的承受能力,你这是间接培养他们,是在为祖国的未来添梁加挖,是..........(省略10000字) |
|
返回顶楼 | |
发表时间:2011-08-15
yj10864 写道 一只蚂蚁要从一个4X3方格面上,从左下角走到右上角,规则是只能向右和向上且一次只能走一格,即不能向下或向左移动,
问题是给出一共有多少种走法,要列出计算公式或算法。 这只是第一问, 第二问是如果将4X3推广到N X M呢,结果是什么?写一段思路或伪代码算法 最后一问,如果不用计算机,有什么办法也能作出来??? ps:昨天中午吃完饭顺便面了一家,笔试这道题挺有意思的,一起来解一下!第一问自己数了下有10种走法,第二问还没有想出来。 一道简单的动态规划题。lz最后提供以下N X M中的N和M的取值范围。 |
|
返回顶楼 | |
发表时间:2011-08-15
phk070832 写道 yj10864 写道 一只蚂蚁要从一个4X3方格面上,从左下角走到右上角,规则是只能向右和向上且一次只能走一格,即不能向下或向左移动,
问题是给出一共有多少种走法,要列出计算公式或算法。 这只是第一问, 第二问是如果将4X3推广到N X M呢,结果是什么?写一段思路或伪代码算法 最后一问,如果不用计算机,有什么办法也能作出来??? ps:昨天中午吃完饭顺便面了一家,笔试这道题挺有意思的,一起来解一下!第一问自己数了下有10种走法,第二问还没有想出来。 一道简单的动态规划题。lz最后提供以下N X M中的N和M的取值范围。 N、M没有条件限制,可以视任意数 |
|
返回顶楼 | |
发表时间:2011-08-15
backshadow 写道 f(n,m)=f(n-1,m)+f(n,m-1)
用二维数组记录中间值,并且f(n,m)=f(m,n),减少递归次数 现在才发现 核心是 F(n, m)=F(n-1,m)+F(n,m-1);二楼很牛! |
|
返回顶楼 | |
发表时间:2011-08-15
不需要代码,排列组合问题
以4×3为例,出发点离终点从横向上说差了4-1格,从竖向上说差了3-1格。 因此在4×3上面任何一条路线,无非都是需要走三步右,两步上,只是顺序不同而已,比如说有可能是“右上右右上”,也有可能是“右右上右上” 所以全部路线就是三个右字和两个上字的排列组合: “右右右上上” 的全排列 = (3+2)!/(3!*2!) = 10 推广到M*N的情况就是 [(M-1) + N-1)]!/[(M-1)!*(N-1)!] |
|
返回顶楼 | |
发表时间:2011-08-15
yj10864 写道 backshadow 写道 f(n,m)=f(n-1,m)+f(n,m-1)
用二维数组记录中间值,并且f(n,m)=f(m,n),减少递归次数 现在才发现 核心是 F(n, m)=F(n-1,m)+F(n,m-1);二楼很牛! 哪里哪里,javaeye平凡的一员而已,楼上的们除了咱俩,才都是牛人 |
|
返回顶楼 | |
发表时间:2011-08-17
最后修改:2011-08-17
引用 不需要代码,排列组合问题 以4×3为例,出发点离终点从横向上说差了4-1格,从竖向上说差了3-1格。 因此在4×3上面任何一条路线,无非都是需要走三步右,两步上,只是顺序不同而已,比如说有可能是“右上右右上”,也有可能是“右右上右上” 所以全部路线就是三个右字和两个上字的排列组合: “右右右上上” 的全排列 = (3+2)!/(3!*2!) = 10 推广到M*N的情况就是 [(M-1) + N-1)]!/[(M-1)!*(N-1)!] 这个正解 |
|
返回顶楼 | |
发表时间:2011-08-24
liujunhg 写道 引用 不需要代码,排列组合问题 以4×3为例,出发点离终点从横向上说差了4-1格,从竖向上说差了3-1格。 因此在4×3上面任何一条路线,无非都是需要走三步右,两步上,只是顺序不同而已,比如说有可能是“右上右右上”,也有可能是“右右上右上” 所以全部路线就是三个右字和两个上字的排列组合: “右右右上上” 的全排列 = (3+2)!/(3!*2!) = 10 推广到M*N的情况就是 [(M-1) + N-1)]!/[(M-1)!*(N-1)!] 这个正解 + |
|
返回顶楼 | |
发表时间:2011-08-24
public class Test { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int sum = 1; int x = Integer.parseInt(args[0]); int y = Integer.parseInt(args[1]); String[][] a = new String[x][y]; System.out.println(checkLine(a,0,0,sum)); } public static int checkLine(String[][] a,int x,int y,int sum){ try{ a[x][y+1] = a[x+1][y]; }catch(Exception e){ return sum; } sum++; sum = checkLine(a,x,y+1,sum); sum = checkLine(a,x+1,y,sum); return sum; } } |
|
返回顶楼 | |