Services & Resources / Wolfram Forums / MathGroup Archive
-----

MathGroup Archive 2010

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

Search the Archive

Re: Lists: how to?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg110025] Re: Lists: how to?
  • From: Peter Breitfeld <phbrf at t-online.de>
  • Date: Sat, 29 May 2010 04:45:41 -0400 (EDT)
  • References: <hto90d$kpp$1@smc.vnet.net>

"S. B. Gray" wrote:

> Hello:
>
> I have this line
>
> subs3 = Subsets[Range[numbr], {3}] which for numbr=7 gives subs3=
>
> {{1,2,3}, {1,2,4}, {1,2,5}, {1,2,6}, {1,2,7}, {1,3,4}, {1,3,5},
>   {1,3,6}, {1,3,7}, {1,4,5}, {1,4,6}, {1,4,7}, {1,5,6}, {1,5,7},
>   {1,6,7}, {2,3,4}, {2,3,5}, {2,3,6}, {2,3,7}, {2,4,5}, {2,4,6},
>   {2,4,7}, {2,5,6}, {2,5,7}, {2,6,7}, {3,4,5}, {3,4,6}, {3,4,7},
>   {3,5,6}, {3,5,7}, {3,6,7}, {4,5,6}, {4,5,7}, {4,6,7}, {5,6,7}}
>
> Given one of these sublists, say {1,4,5}, I want a nice way to delete 
> all members of the subs3 list which have 1,4, or 5 in any one of the 
> three positions. The reduced list in this example would be
> {{2,3,6}, {2,3,7}, {2,6,7}, {3,6,7}}.
>
> The way I'm doing it runs DeleteCases nine times. Is there a better way?
>
> Steve Gray
>

This may work, but I don't know if it's fast.

First create a pattern for the items to be deleted:

testform=Permutations[{1,4,5,_,_},{3}]

Then delete all elements matching testform:

DeleteCases[subs3,Alternatives @@ testform]

you get your result.

//Peter
-- 
_________________________________________________________________
Peter Breitfeld, Bad Saulgau, Germany -- http://www.pBreitfeld.de


  • Prev by Date: Re: Lists: how to?
  • Next by Date: Re: Q about ParametricPlot3D
  • Previous by thread: Re: Lists: how to?
  • Next by thread: Re: Lists: how to?