【发布时间】:2011-06-07 13:59:28
【问题描述】:
我有一个递归要解决。
f(m,n)=Sum[f[m - 1, n - 1 - i] + f[m - 3, n - 5 - i], {i, 2, n - 2*m + 2}] + f[m - 1, n - 3] + f[m - 3, n - 7]
f(0,n)=1, f(1,n)=n
但是,下面的 mma 代码效率很低
f[m_, n_] := Module[{},
If[m < 0, Return[0];];
If[m == 0, Return[1];];
If[m == 1, Return[n];];
Return[Sum[f[m - 1, n - 1 - i] + f[m - 3, n - 5 - i], {i, 2, n - 2*m + 2}] + f[m - 1, n - 3] + f[m - 3, n - 7]];]
计算 f[40,20] 需要很长时间。有人可以建议一种有效的方法吗?非常感谢!
【问题讨论】:
-
这不是“解决”递归。您要求的是“实现由递归定义的两个变量的函数”。解决递归需要找到一个不涉及递归的 m 和 n 的直接公式。
标签: wolfram-mathematica recurrence