       Re: Simple n-tuple problem - with no simple solution

• To: mathgroup at smc.vnet.net
• Subject: [mg115790] Re: Simple n-tuple problem - with no simple solution
• From: Sseziwa Mukasa <mukasa at jeol.com>
• Date: Fri, 21 Jan 2011 04:28:59 -0500 (EST)

```On Jan 20, 2011, at 6:33 AM, Don wrote:

> Problem: Given an n-tuple  (n >= 1). with each element  able to take
> on the values in
> Range[0, 1.0, .05] , produce all the n-tuples that sum to 1.0.
>
> The most direct way to solve this problem is to generaate all possible
> n-tuples and Select out all those that sum to 1.0.
>
> For example, when n = 2 :
>
> n = 2;
> Select[Tuples[Table[Range[0, 1.0, .05], {n}]], Total[#] == 1 &]
>
> The problem with this solution is that the number of n-tuples that are
> generated before the Select is used grows exponentially fast as a
> function
> of n - causing the system to run out of memory (RAM) very quickly.
>
> Is there a more memory efficient way to solve this problem that
> doesn't
> use so much memory but still is not too slow in terms of processor
> time?

Use Outer

Flatten[Outer[If[Plus[##]==1,{##},Sequence@@{}]&,Sequence@@Table[Range[0,1.0,0.5],{n}]],1]

Regards,
Ssezi

```

• Prev by Date: Re: Array of arrays of various sizes and compile
• Next by Date: Re: New Mathematica file format .cdf; what is it?
• Previous by thread: Simple n-tuple problem - with no simple solution
• Next by thread: Re: Simple n-tuple problem - with no simple solution