SORRY GUYS!我的错!感谢您的提醒,我发现f(0,k)== f(k,0)== 1.这个问题是关于如何计算从网格(0,0)到(m,n)的最短路径数)。找到这个二元递推方程的公式? f(m,n)= f(m-1,n)+ f(m,n-1)
我现在必须解出下面的公式,准确地找出f(m,n)等于什么。
1) f(m,n) = 0 : when (m,n) = (0,0)
**2) f(m,n) = 1 : when f(0,k) or f(k,0)**
3) f(m,n) = f(m-1,n) + f(m,n-1) : when else
例如:
1) f(0,0) = 0;
2) f(0,1) = 1; f(2,0) = 1;
3) f(2,1) = f(1,1) + f(2,0) = f(0, 1) + f(1, 0) + f(2, 0) = 1 + 1 + 1 = 3
我记得有我在我的算法类几年以前就学会了解决这种类型的二进制递推方程的标准方法,但我不记得现在。
任何人都可以提供任何提示吗?或者一个关键词如何找到答案?
你的意思是,你需要找到一种不使用递归的公式?或者只是一种有效计算循环的算法? – svick 2012-01-26 23:03:24
你确定f(2,1)= 3吗?我读取f(2,1)= f(1,1)+ f(2,0)=(f(0,1)+ f(1,0))+ f(2,0)=(1 + 1 )+ 2 = 2 + 2 = 4 – 2012-01-26 23:03:42
您正在努力寻找封闭的表单解决方案吗? – ElKamina 2012-01-26 23:05:44