       Re: Loop problem

• To: mathgroup at smc.vnet.net
• Subject: [mg123064] Re: Loop problem
• From: Bill Rowe <readnews at sbcglobal.net>
• Date: Tue, 22 Nov 2011 05:35:15 -0500 (EST)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com

```On 11/21/11 at 4:27 AM, puya.sharif at live.com (P Shar) 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)?

First, I assume the range for i,j,k,l is {0,1,2,3} i.e., you
meant less than or equal rather than strictly less than. If you
did mean strictly less than, then your conditions lead to a null
set for all cases. There are only two integers between 0 and 3
and you require a minimum of 3 distinct integers.

So with that, the first case (all four distinct) is done by

Permutations[{0,1,2,3}]

The remaining conditions can all be achieve with variations of:

Cases[Tuples[{0, 1, 2, 3}, 3], _?(Length@Union[#] == 3 &)] /.
{a_, b_,
c_} -> {a, b, b, c}

Here, I use Tuples to generate all possible {i,j,k} with each
>=0 and <=3
Cases to select only those with distinct values and a
replacement rule to insert a copy of one in the right position.

No explicit loops needed.

```

• Prev by Date: Re: Help: Regular expressions
• Next by Date: Re: Matrices as operators
• Previous by thread: Re: Loop problem
• Next by thread: Help: Regular expressions