MathGroup Archive 2002

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

Search the Archive

Re: Two starting programming questions re alternating groups and EulerPhi LCM numbers

  • To: mathgroup at smc.vnet.net
  • Subject: [mg37918] Re: [mg37912] Two starting programming questions re alternating groups and EulerPhi LCM numbers
  • From: Andrzej Kozlowski <andrzej at platon.c.u-tokyo.ac.jp>
  • Date: Tue, 19 Nov 2002 20:58:21 -0500 (EST)
  • Sender: owner-wri-mathgroup at wolfram.com

Of course a simpler way to define the multiplication of permutations is 
just:

mult[x_?PermutationQ, y_?PermutationQ] := Permute[x, y]



Andrzej Kozlowski
Yokohama, Japan
http://www.mimuw.edu.pl/~akoz/
http://platon.c.u-tokyo.ac.jp/andrzej/



On Tuesday, November 19, 2002, at 08:23 PM, Andrzej Kozlowski wrote:

> 1. The answers to your first question are all contained in the 
> standard package
>
> << DiscreteMath`Combinatorica`
>
> Listing the elements of A5 could not be simpler:
>
> In[2]:=
> A5=AlternatingGroup[5];
>
> In[3]:=
> Length[%]
>
> Out[3]=
> 60
>
> First you need to define multiplication of permutations.
>
>
> mult[x_?PermutationQ, y_?PermutationQ] :=
>     Permute[Permute[IdentityPermutation[5], x], y]
>
> for example:
>
> In[5]:=
> mult[A5[[2]],A5[[3]]]
>
> Out[5]=
> {1,2,3,4,5}
>
> you can check yourself that A5[[2]] and A5[[3]] are indeed inverses.
>
> You can compute the order of each element using the following simple 
> code:
>
> In[5]:=
> ord[(p_)?PermutationQ] := Length[NestWhileList[mult[p, #1] & , p, #1 
> != IdentityPermutation[5] & ]]
>
> You can map this onto the whole group to get the orders of all the 
> elements:
>
> In[6]:=
> ord /@ A5
>
> Out[6]=
> {1, 3, 3, 2, 3, 3, 3, 3, 2, 3, 3, 2, 2, 2, 2, 3, 5, 5, 5, 3, 5, 5, 3, 
> 5, 3, 5, 5, 2, 3, 3, 2, 5, 5, 2, 5, 5, 5, 3, 5, 3, 3, 2, 5, 2,
>   5, 5, 5, 2, 5, 3, 5, 3, 3, 2, 5, 2, 5, 5, 5, 2}
>
>
> You can get the multiplication table with a single command:
>
> MultiplicationTable[A5, mult] // TableForm
>
> The elements in the table are described by their position in the list 
> representing A5.
>
> 2) The following simple code will do what you want:
>
> relativePrimes[q_] := Select[Range[q], GCD[#1, q] == 1 &]
>
> You can check it works:
>
> In[10]:=
> Length[relativePrimes[20]]==EulerPhi[20]
>
> Out[10]=
> True
>
> Andrzej Kozlowski
> Yokohama, Japan
> http://www.mimuw.edu.pl/~akoz/
> http://platon.c.u-tokyo.ac.jp/andrzej/
>
>
>
> On Tuesday, November 19, 2002, at 05:51 PM, Diana wrote:
>
>> Mathematica junkies...
>>
>> I have ordered Mathematica Student, and am excited about starting to
>> program with it.
>>
>> I was wondering if someone with experience could help me with two
>> (easy?) programs to get started.
>>
>> Program 1:
>>
>> A. I want to first list the elements of A_5. These would be the even
>> permutations of S_5, such as:
>>
>> (1, 2, 3, 4, 5)
>> (1, 2, 4, 3 5), etc. There are 60 of these.
>>
>> B. Secondly, I want to figure out how to compute the order of each of
>> the elements.
>>
>> C. Last, I want to create a Cayley table of 60 x 60 elements, i.e.,
>> (1, 2, 3, 4, 5) * (1, 2, 4, 3, 5). This would be the answer you get to
>> first permuting a 5-tuple by (1, 2, 3, 4, 5), and then permuting it by
>> (1, 2, 4, 3, 5).
>>
>> I have done all of this with an Excel spreadsheet, and am not turning
>> this in or getting credit for it. Just want to know how to do it.
>>
>> Program 2
>>
>> I understand that Mathematica has the EulerPhi function in it. Does
>> anyone know how to get the program to list the elements which are less
>> than and relatively prime to any given "n"?
>>
>> Thanks,
>>
>> Diana
>>
>>
>>
>>
>
>



  • Prev by Date: Re: InequalitySolve
  • Next by Date: RE: named optional parameters
  • Previous by thread: Re: Two starting programming questions re alternating groups and EulerPhi LCM numbers
  • Next by thread: named optional parameters