Re: Loop problem
- To: mathgroup at smc.vnet.net
- Subject: [mg123049] Re: Loop problem
- From: Ray Koopman <koopman at sfu.ca>
- Date: Tue, 22 Nov 2011 05:32:23 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <jad5v2$ei4$1@smc.vnet.net>
On Nov 21, 1:34 am, P Shar <puya.sha... at live.com> wrote: > Hey guys, i need a loop (that does the following) > and can't figure out what to do.. > > I need a set of lists {i,j,k,l} i=E2=89 j=E2=89 k=E2=89 l, i=E2=89 j=k=E2=89 l, i=E2=89 j=E2=89 k=l, i=E2=89 k=E2=89 j=l > where 0 < i,j,k,l < 3. > > So basically all the cases where the first condition holds > and all the cases there the second holds etc.. > > Easiest would be to get the output as a matrix > with the {i,j,k,l}'s as rows. > > Any ideas (or at least where to start)? > > Cheers 0 < i,j,k,l < 3 means that each of i,j,k,l must be either 1 or 2. I assume you want 0 <= i,j,k,l <= 3. I assume that i=E2=89 j=E2=89 k=E2=89 l means Unequal[i,j,k,l], not merely Unequal[i,j] && Unequal[j,k] && Unequal[k,l]. I assume that i=E2=89 j=k=E2=89 l means Unequal[i,j,l] && Equal[j,k], and similarly for the conditions 3 and 4. Condition 1 is straightforward: Permutations@Range[0,3] {{0,1,2,3},{0,1,3,2},{0,2,1,3},{0,2,3,1},{0,3,1,2},{0,3,2,1}, {1,0,2,3},{1,0,3,2},{1,2,0,3},{1,2,3,0},{1,3,0,2},{1,3,2,0}, {2,0,1,3},{2,0,3,1},{2,1,0,3},{2,1,3,0},{2,3,0,1},{2,3,1,0}, {3,0,1,2},{3,0,2,1},{3,1,0,2},{3,1,2,0},{3,2,0,1},{3,2,1,0}} Condition 2 is more convoluted: Join@@Permutations/@Subsets[Range[0,3],{3}]/.{a_,b_,c_}->{a,b,b,c} {{0,1,1,2},{0,2,2,1},{1,0,0,2},{1,2,2,0},{2,0,0,1},{2,1,1,0}, {0,1,1,3},{0,3,3,1},{1,0,0,3},{1,3,3,0},{3,0,0,1},{3,1,1,0}, {0,2,2,3},{0,3,3,2},{2,0,0,3},{2,3,3,0},{3,0,0,2},{3,2,2,0}, {1,2,2,3},{1,3,3,2},{2,1,1,3},{2,3,3,1},{3,1,1,2},{3,2,2,1}} For condition 3, change {a,b,b,c} to {a,b,c,c}. For condition 4, change {a,b,b,c} to {a,b,c,b}.