Re: find subsets
- To: mathgroup at smc.vnet.net
- Subject: [mg104725] Re: [mg104694] find subsets
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Sun, 8 Nov 2009 06:43:38 -0500 (EST)
- Reply-to: hanlonr at cox.net
Ns = Subsets[{a, b, c, d, e}, {3}]; Needs["Combinatorica`"] Ns == KSubsets[{a, b, c, d, e}, 3] True Cases[Ns, {___, b, ___}] {{a, b, c}, {a, b, d}, {a, b, e}, {b, c, d}, {b, c, e}, {b, d, e}} % == Cases[Ns, _?(! FreeQ[#, b] &)] True %% == Select[Ns, ! FreeQ[#, b] &] True Cases[Ns, {___, b, c, ___}] {{a, b, c}, {b, c, d}, {b, c, e}} % == Cases[Ns, {___, b, ___, c, ___}] True %% == Cases[Ns, _?(! FreeQ[#, b] && ! FreeQ[#, c] &)] True Bob Hanlon ---- r_poetic <radford.schantz at mms.gov> wrote: ============= Hello, here is a quick question from a novice. First, generate a list of subsets using Subsets or KSubsets functions. Ns = KSubsets[{a,b,c,d,e},3] = {{a,b,c},{a,b,d},{a,b,e},{a,c,d}, etc.} How can one infer from that list a list of its members that contain given elements, e.g. a list of members that contain b, or those that contain both b and c? For illustration: Some_function[Ns, b and c] = { {a,b,c},{b,c,d},{b,c,e}} I keep thinking there must be a direct way to do this using Select or some other function?