Re: why do recursive function calculations take so long in Mathematica?
- To: mathgroup at smc.vnet.net
- Subject: [mg43582] Re: [mg43566] why do recursive function calculations take so long in Mathematica?
- From: Murray Eisenberg <murray at math.umass.edu>
- Date: Sun, 21 Sep 2003 05:42:21 -0400 (EDT)
- Organization: Mathematics & Statistics, Univ. of Mass./Amherst
- References: <200309201039.GAA07655@smc.vnet.net>
- Reply-to: murray at math.umass.edu
- Sender: owner-wri-mathgroup at wolfram.com
The reason it takes so long is that at each stage of the recusrion,
prevously-calculated values have to be re-calculated. To speed it up,
cache the values in the recursive relation (and you might as well may
dr[0,0] to be a Set, with =, instead of a SetDelayed, with := ):
dr[0, 0] = 0; dr[n_, n_] := 0; dr[n_, 0] := 1;
dr[n_, k_] := dr[n, k] = dr[n, k - 1] + dr[n - 1, k];
Timing[dr[16, 15]]
{0. Second, 9694845}
That's on my 933 MHz Pentium III with 512 MB RAM.
G Feigin wrote:
> I defined the following simple recursive function:
>
> dr[0,0] := 0; dr[n_,n_]:= 0;
> dr[n_,0]:=1;dr[n_,k_]:=dr[n,k-1]+dr[n-1,k];
>
> To evaluate dr[16,15] takes about 5 minutes on a Pentium class
> machine, an absurdly long time. Why? And what can I do to speed
> things up? By the way,
> if I perform the recursion in an Excel spreadsheet on the same
> machine, the calculation time is practically instantaneous.
>
> Please reply by email.
>
>
--
Murray Eisenberg murray at math.umass.edu
Mathematics & Statistics Dept.
Lederle Graduate Research Tower phone 413 549-1020 (H)
University of Massachusetts 413 545-2859 (W)
710 North Pleasant Street fax 413 545-1801
Amherst, MA 01003-9305
- References:
- why do recursive function calculations take so long in Mathematica?
- From: g.feigin@verizon.net (G Feigin)
- why do recursive function calculations take so long in Mathematica?