Re: Re: Eliminating intermediate results

• To: mathgroup at smc.vnet.net
• Subject: [mg91634] Re: [mg91560] Re: Eliminating intermediate results
• From: Ray Koopman <koopman at sfu.ca>
• Date: Sat, 30 Aug 2008 01:51:21 -0400 (EDT)
• Reply-to: Ray Koopman <koopman at sfu.ca>

```On Fri, 29 Aug 2008 12:18:19 -0500 danl at wolfram.com wrote:
>
> In version 6, one could also use built-in IntegerPartitions
> for this sort of thing. For the poster's example:
>
> Total[6! / Apply[Times,Map[Factorial[Length[#]]&,Map[Split,
>
> If desired, one might generate them using Permutations
> instead of just counting via factorial.
>
> Daniel
>

Yes, in my haste I forgot that the permutations can be counted
without actually generating them. This makes it faster
and reduces the dependence on k:

try[n_,k_] := {Timing@Do[Null,{1*^7}];
Timing@Tr[Length@Permutations@#&/@P[n-k,k]],
Timing@Tr[Multinomial@@Length/@Split@#&/@P[n-k,k]],
Timing@Tr[k!/Times@@Factorial[Length/@Split@#]&/@P[n-k,k]],
Timing[k!*Tr[1/Times@@Factorial[Length/@Split@#]&/@P[n-k,k]]]}

(On my system, the timed dummy loop is necessary to keep the first

try[30,6]
{{0.05 Second,118755},
{0.02 Second,118755},
{0.02 Second,118755},
{0.03 Second,118755}}

try[30,8]
{{0.87 Second,1560780},
{0.01 Second,1560780},
{0.03 Second,1560780},
{0.02 Second,1560780}}

try[30,10]
{{6.64 Second,10015005},
{0.01 Second,10015005},
{0.03 Second,10015005},
{0.02 Second,10015005}}

```

• Prev by Date: Re: Re: Mathematica and F#
• Next by Date: Re: light-weight PC to run Mathematica?
• Previous by thread: Re: Eliminating intermediate results
• Next by thread: NonlinearRegress of user functions