Re: generating subsets

• To: mathgroup at smc.vnet.net
• Subject: [mg21594] Re: [mg21588] generating subsets
• From: Andrzej Kozlowski <andrzej at tuins.ac.jp>
• Date: Sun, 16 Jan 2000 22:43:43 -0500 (EST)
• Sender: owner-wri-mathgroup at wolfram.com

```This is a classic problem for which there are dozen of solutions. My
favourite one is Ilan Vardi's ("Computational Recreations in Mathematica):

subSets[l_List] := Distribute[Map[{{}, {#}} &,  l], List, List, List, Union]

In[5]:=
Subsets[{a, b, c}]

Out[5]=
{{}, {c}, {b}, {b, c}, {a}, {a, c}, {a, b}, {a, b, c}}

Algebraic programs like this one are usually not the fastest possible but
for me this is  easily compensated for by their elegance and readability.

> From: Michael Gass <mgass at bach.math.csbsju.edu>
To: mathgroup at smc.vnet.net
> Date: Sun, 16 Jan 2000 03:56:54 -0500 (EST)
> To: mathgroup at smc.vnet.net
> Subject: [mg21594] [mg21588] generating subsets
>
>
> I need an _efficient_  procedure for generating all the subsets
> of a given set.  The procedure should produce output as follows:
>
> subSets[{a,b,c}]
> produces
> {{}, {a}, {b}, {c}, {a,b}, {a,c}, {b,c}, {a,b,c}}
>
> I have written a recursive procedure to do this, but
> it takes quite a while to generate, say, the 512 subsets
> of a 9 element set and I need to work with somewhat larger
> sets.
>
> Thanks
>
> --
> Michael Gass                Department of Mathematics
> phone: 320 363-3090                     St. John's University
> email: mgass at csbsju.edu                 Collegeville, MN  56321-3000
>
>
>
>
>

```

• Prev by Date: Re: generating subsets
• Next by Date: Flat, OneIdentity attributes
• Previous by thread: Re: generating subsets
• Next by thread: Re: generating subsets