MathGroup Archive 2003

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

Search the Archive

Re: Multiplying permutations

  • To: mathgroup at smc.vnet.net
  • Subject: [mg41838] Re: Multiplying permutations
  • From: "Dr. Wolfgang Hintze" <weh at snafu.de>
  • Date: Fri, 6 Jun 2003 09:51:16 -0400 (EDT)
  • References: <bbhvu4$75u$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

How can I define multiple products recursively?

Example permutations

p = {3, 1, 2};
q = {2, 1, 3};
r = {3, 2, 1};

Carl's defintion of the product

p_·q_ := q[[p]]

works fine for 2 factors:

In[237]:=
p · q

Out[237]=
{3, 2, 1}

Now let's try 3 factors

In[240]:=
p · q · r

Out[240]=
{3, 1, 2} · {2, 1, 3} · {2, 3, 1}

Using brackets we get what we want

In[265]:=
(p · q) · r
p · (q · r)

Out[265]=
{1, 3, 2}

Out[266]=
{1, 3, 2}

Despite of the associativeness of the product we need brackets.
Hence if we define for 3 factors

In[242]:=
p_ · q_ · r_ := (p · q) · r

we can get

In[278]:=
p · q · r

Out[278]=
{1, 3, 2}

But a product of 4 factors still is not defined.
Question: How can a general recursive definition be given?

Wolfgang



Dr. Wolfgang Hintze wrote:

> Is there a simple command in Mathematica to multiply two permutations, 
> i.e. to carry out one after the other?
> 
> I looked at the packages DiscreteMath`Permutations` and 
> DiscreteMath`Combinatorica` but couldn't find it.
> 
> Example
> 
> p = {3,1,2}  	mapping: 1->3, 2->1, 3->2
> q = {2,1,3}  	mapping: 1->2, 2->1, 3->3
> p.q = 		mappings (p first, then q)
> 		[1-p->3-q->3, 2-p->1-q->2, 3-p->2-q->1]
> = {3,2,1}
> 
> Any help appreciated
> 
> Wolfgang
> 
> 


  • Prev by Date: Re: Creating/Solving a cumulative distribution function?
  • Next by Date: Re: Combinations of two lists
  • Previous by thread: Re: Multiplying permutations
  • Next by thread: Fw: Re: Multiplying permutations