6
해결할 재귀가 있습니다.mathematica에서 재귀 관계를 효율적으로 계산하는 방법은 무엇입니까?
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 코드는 [40,20] f를 계산할 참을 오래 걸리는
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]];]
매우 비효율적이다. 누구든지이 일을하는 효율적인 방법을 제안 해 주시겠습니까? 많은 감사합니다!
이것은 재귀를 "푸는"것이 아닙니다. 당신이 요구하는 것은 "재귀에 의해 정의 된 두 변수의 함수 구현"입니다. 재귀를 해결하려면 재귀를 포함하지 않는 m 및 n에 대한 직접 수식을 찾아야합니다. – ogerard