Re: Simple n-tuple problem - with no simple solution
- To: mathgroup at smc.vnet.net
- Subject: [mg115883] Re: Simple n-tuple problem - with no simple solution
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Mon, 24 Jan 2011 05:22:27 -0500 (EST)
Brilliant!
Bobby
On Sun, 23 Jan 2011 16:32:03 -0600, Dana DeLouis <dana.del at gmail.com>
wrote:
> On Jan 22, 3:23 am, DrMajorBob <btre... at austin.rr.com> wrote:
>> Here are some timings.
>
>> n = 5; addends = Rationalize@Range[0, 1.0, 0.05];
>> Length@t1[addends, n] // Timing
>>
>> {1.44372, 192}
>> {23.6318, 192}
>
>> n = 7;
>> Length@t1[addends, n] // Timing
>> {1.85135, 364}
>
>> n = 9;
>> Length@t1[addends, n] // Timing
>> {2.04216, 488}
>
>> The Compositions method rendered Mathematica unresponsive at n = 10, but
>> here's n = 25 for my approach:
>> n = 25;
>> Length@t1[addends, n] // Timing
>>
>> {2.57619, 627}
>>
>> I'd say Solve (which must use Integer Linear Programming for this) is
>> the
>> way to go.
>
>
> Hi. Just some thoughts. With the smallest unit 1, the most n can be
> is 20.
>
> If we assume that solution sizes smaller than n have implied 0's, then...
>
> IntegerPartitions[20,5]//Length //Timing
> {0.000085,192}
>
> IntegerPartitions[20,20]//Length //Timing
> {0.000244,627}
>
> If we want to look at each exact n, then the function uses {n}
>
> Table[Length[IntegerPartitions[20,{j}]],{j,20}]
> {1,10,33,64,84,90,82,70,54,42,30,22,15,11,7,5,3,2,1,1}
>
> Accumulate[%]
> =
> {1,11,44,108,192,282,364,434,488,530,560,582,597,608,615,620,623,625,626,627}
>
> By adding them up, we see that for n=5, we get the 192. For n=7, 364,
> etc.
>
> If the question was "Count all possible combinations" as in the last
> total above, then one additional way...
>
> Timing[SeriesCoefficient[
> 1/Times @@ (1 - n^#1 & ) /@
> Range[20], {n, 0, 20}]]
>
> {0.0003, 627}
>
> = = = = = = = = = =
> HTH : >)
> Dana DeLouis
>
>
--
DrMajorBob at yahoo.com