MathGroup Archive 2004

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

Search the Archive

Re: Creating combinations from a group of sets

  • To: mathgroup at smc.vnet.net
  • Subject: [mg48718] Re: Creating combinations from a group of sets
  • From: "Rob Pratt" <Rob.Pratt at sas.com>
  • Date: Fri, 11 Jun 2004 03:52:51 -0400 (EDT)
  • References: <ca91bp$t8h$1@smc.vnet.net>
  • Reply-to: "Rob Pratt" <Rob.Pratt at sas.com>
  • Sender: owner-wri-mathgroup at wolfram.com

"Jeanette L Domber" <Jeanette.L.Domber at aero.org> wrote in message
news:ca91bp$t8h$1 at smc.vnet.net...
>
> I have a group of sets:
>
> {1,2,3}
> {4,5}
> {6}
> {7,8}
>
> I wish to create all unique combinations of the sets that contain exactly
one element from each set:
>
> {1,4,6,7}
> {1,5,6,7}
> {1,4,6,8}
> {1,5,6,8}
> {2,4,6,7}
> {2,5,6,7}
> etc.
>
> In all, there should be 12 combinations.
>
> If I use KSubsets giving it a list {1,2,3,4,5,6,7,8} to create
combinations containing 4 elements, I get a list of 70 combinations, 58 of
which are extraneous to my application.
>
> Does anyone know how to manipulate the functions in
DiscreteMath`Combinatorica` to accomplish this efficiently?
>
> Thanks,
>     Jeanette


You don't need Combinatorica to do this.


In[1]:= ?Distribute
Distribute[f[x1, x2, ... ]] distributes f over Plus appearing in any of the
   xi. Distribute[expr, g] distributes over g. Distribute[expr, g, f]
performs
   the distribution only if the head of expr is f.

In[2]:= Distribute[{{1,2,3},{4,5},{6},{7,8}}, List]

Out[2]= {{1, 4, 6, 7}, {1, 4, 6, 8}, {1, 5, 6, 7}, {1, 5, 6, 8},

>    {2, 4, 6, 7}, {2, 4, 6, 8}, {2, 5, 6, 7}, {2, 5, 6, 8}, {3, 4, 6, 7},

>    {3, 4, 6, 8}, {3, 5, 6, 7}, {3, 5, 6, 8}}


Rob Pratt



  • Prev by Date: Re: [Off Topic] Re: Re: What is zero divided by zero?
  • Next by Date: Re: Re: RE: Help Browser
  • Previous by thread: Re: Creating combinations from a group of sets
  • Next by thread: Interpolating function