Re: extract from list and keep track
- To: mathgroup at smc.vnet.net
- Subject: [mg62160] Re: extract from list and keep track
- From: Peter Pein <petsie at dordos.net>
- Date: Sun, 13 Nov 2005 02:08:39 -0500 (EST)
- References: <dl4ah1$j48$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Andrea schrieb:
> 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 do this. One of them is:
data = {3, 7, 9, 21, 43, 57, 63, 71, 75, 99};
Pick[data, Mod[#, 8] & /@ data, 1 | 7] /.
x_Integer :> Append[First@Position[data, x], x]
{{2,7},{3,9},{6,57},{7,63},{8,71}}
Peter