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