Re: Help with Delete cases
- To: mathgroup at smc.vnet.net
 - Subject: [mg116242] Re: Help with Delete cases
 - From: Bob Hanlon <hanlonr at cox.net>
 - Date: Tue, 8 Feb 2011 05:05:34 -0500 (EST)
 
list = Range[3003];
sol1 = With[{m = 5, p = 7}, 
   DeleteCases[list, _?(Mod[# - m (m + 1)/2, p] == 0 &)]];
sol2 = With[{m = 5, p = 7}, 
   Cases[list, Except[_?(Mod[# - m (m + 1)/2, p] == 0 &)]]];
sol3 = With[{m = 5, p = 7}, 
   Cases[list, _?(Mod[# - m (m + 1)/2, p] != 0 &)]];
sol4 = With[{m = 5, p = 7}, 
   Select[list, Mod[# - m (m + 1)/2, p] != 0 &]];
sol5 = With[{m = 5, p = 7}, 
   list //. _?(Mod[# - m (m + 1)/2, p] == 0 &) :> Sequence[]];
sol1 == sol2 == sol3 == sol4 == sol5
True
3003 - Length[sol1]
429
Bob Hanlon
---- KenR <ramsey2879 at msn.com> wrote: 
=============
I have a list= Range[3003]  I want to delete cases of n = m(m+1) mod P
from the list, but Delete cases only deletes cases matching a pattern,
i.e.
list = DeleteCases[list,Mod[N - m(m+1)/2,P] = 0] will definitely not
work.  I want to keep list, as the same identifier, throughout since
this is within a looping process. Any suggestions?