MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: extract from list and keep track

  • To: mathgroup at smc.vnet.net
  • Subject: [mg62178] Re: extract from list and keep track
  • From: "Scout" <Scout at nodomain.com>
  • Date: Sun, 13 Nov 2005 21:16:14 -0500 (EST)
  • References: <dl4ah1$j48$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

"Andrea" <andrea at radargift.com> ha scritto nel messaggio 
news:dl4ah1$j48$1 at smc.vnet.net...
> I'm trying to write a program for the following. Seems simple, but I'm
> unable to to do it:
>
> I have a list of increasing odd numbers. I want to create a table that
> indicates which numbers in this list are 1(mod 8) and 7(mod 8) and what
> position in the list these numbers have.
> Then I would like to have them removed form the list to get a new 
> (reduced)
> list.
>
>
> Example: 3, 7, 9, 21, 43, 57, 63, 71, 75, 99.   I want to form this a 
> Table:
>
> 2      7
> 3      9
> 6    57
> 7    63
> 8    71
>
> 7 is 7(mod 8) and is the 2nd member in the list, 9 is 1(mod 8) and is the
> 3rd member in the list, etc.
>
> The next list would become, having removed the ones in the table:
>
> 3, 21, 43, 75, 99
>
> And I would be using some other congruence criteria. Etc.
>
> Thanks,
> Andrea
>

Hi Andrea,
there are many ways to solve the problem.
I've tried this:

In[1]:= data={3,7,9,21,43,57,63,71,75,99};
In[2]:= myQ[x_]:=MemberQ[{1,7},x];
In[3]:= mat=Transpose[{Range[Length[data]],data}];
In[4]:= Pick[mat,Mod[data,8],_?myQ]
Out[4]= {{2,7},{3,9},{6,57},{7,63},{8,71}}
In[5]:= Complement[mat,%]
Out[5]= {{1,3},{4,21},{5,43},{9,75},{10,99}}

    ~Scout~



  • Prev by Date: Re: Defining variables in $UserBaseDirectory/init.m
  • Next by Date: Re: extract from list and keep track
  • Previous by thread: Re: extract from list and keep track
  • Next by thread: Re: extract from list and keep track