Re: Simple n-tuple problem - with no simple solution
- To: mathgroup at smc.vnet.net
- Subject: [mg115874] Re: Simple n-tuple problem - with no simple solution
- From: Dana DeLouis <dana.del at gmail.com>
- Date: Sun, 23 Jan 2011 17:32:03 -0500 (EST)
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