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}.