MathGroup Archive 2009

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

Search the Archive

Re: Finding all n-partitions of a set

  • To: mathgroup at smc.vnet.net
  • Subject: [mg98745] Re: [mg98707] Finding all n-partitions of a set
  • From: Leonid Shifrin <lshifr at gmail.com>
  • Date: Fri, 17 Apr 2009 04:30:41 -0400 (EDT)
  • References: <200904160818.EAA17706@smc.vnet.net>

Hi Joe,

You can load the DiscreteMath`Combinatorica` package (or, just
Combinatorica`, in v.6.0+).

In[1] = <<DiscreteMath`Combinatorica`

It has the KSetPartitions function. Then, the following does what you want:

In[2] = Union@Map[Sort, KSetPartitions[{a, b, a, b}, 2], 2]


Out[2] = {{{a}, {a, b, b}}, {{b}, {a, a, b}}, {{a, a}, {b, b}}, {{a, b}, {a,

   b}}}


Map[Sort, ...] is used to bring the partitions which are different only
in the order of their elements, to the same form, so that duplicates can be
eliminated by Union. Note that we Map Sort on both level 1 and level 2, and
this  does what we need because Map maps on several levels in  a depth-first
manner.

Regards,
Leonid



On Thu, Apr 16, 2009 at 1:18 AM, Joe.Mapasapam <mapasapam at gmail.com> wrote:

> Please how can I find all n-partions of a set ?
>
>
> Say, i want partitions of the set (no order) {a,a,b,b} into 2,
>
> so we have
> {
> {{a,a,b,},{b}},
> {{a,b,b},{a}},
> {{a,a},{b,b}},
> {{a,b},{a,b}}
> }
>
> is there already a built in function in mathematica ?
>
> i need so n can be any number
>
>



  • Prev by Date: Re: Strange Output!!!Please help me thank you.
  • Next by Date: Re: Finding all n-partitions of a set
  • Previous by thread: Re: Finding all n-partitions of a set
  • Next by thread: Re: Finding all n-partitions of a set