Re: rules on vector sequence
- To: mathgroup at smc.vnet.net
- Subject: [mg98080] Re: [mg98018] rules on vector sequence
- From: DrMajorBob <btreat1 at austin.rr.com>
- Date: Sun, 29 Mar 2009 02:48:24 -0500 (EST)
- References: <200903281041.FAA04380@smc.vnet.net>
- Reply-to: drmajorbob at bigfoot.com
Here's a solution: Clear[sums, insertions] insertions[x : {__List}] := Union @@ insertions /@ x insertions[x_List] := Union[Insert[x, 0, #] & /@ Range[1 + Length@x]] sums[1] = {}; sums[2] = {{-2, 2}, {-1, 1}, {1, -1}, {2, -2}}; sums[4] = Module[{nonZero = {-2, -1, 1, 2}}, Union @@ Permutations /@ Join[Select[Tuples@{nonZero, nonZero, nonZero, nonZero}, 0 == Total@# &], insertions@insertions@sums@2] ]; sums[len_?Positive] := sums[len] = insertions@sums[len - 1] Timing[Length@sums@17] {7.9271, 86224} sums@3 {{-2, 0, 2}, {-2, 2, 0}, {-1, 0, 1}, {-1, 1, 0}, {0, -2, 2}, {0, -1, 1}, {0, 1, -1}, {0, 2, -2}, {1, -1, 0}, {1, 0, -1}, {2, -2, 0}, {2, 0, -2}} Length@sums@4 60 Length@sums@5 220 s6 = sums@6; Length@s6 Total /@ s6 // Union Total /@ Unitize@s6 // Union Length@s6 == Length@Union@s6 600 {0} {2, 4} True Bobby On Sat, 28 Mar 2009 05:41:26 -0500, Filippo Miatto <sottosupremo at gmail.com> wrote: > Dear all, > I need to generate all the vectors, of a given length N, that have > these three properties: > > 1- the entries have to be among -2,-1,0,1,2 > 2- the sum of all the entries has to be 0 > 3- only two or four of the entries can be different from 0 > > do you have any suggestions on how i can do that? i tried something > but without success.. expecially i don't know how to implement the > third rule.. > thank you in advance! > Filippo > -- DrMajorBob at bigfoot.com
- References:
- rules on vector sequence
- From: Filippo Miatto <sottosupremo@gmail.com>
- rules on vector sequence