({{, (RefLink[CycleIndexPolynomial, paclet:ref/CycleIndexPolynomial])[perm,{(Subscript[x, 1]),…,(Subscript[x, n])}] 
constructs the cycle index monomial of the permutation perm in the variables (Subscript[x, i]).}, {, (RefLink[CycleIndexPolynomial, paclet:ref/CycleIndexPolynomial])[group,{(Subscript[x, 1]),…,(Subscript[x, n])}] 
constructs the cycle index polynomial of group in the variables (Subscript[x, i]).}})

OpenersNotesSection(Spacer1)Details

(RefLink[CycleIndexPolynomial, paclet:ref/CycleIndexPolynomial])[perm,vars] assumes perm is a permutation acting on the domain {1,…,max}, where max is the largest integer moved, as given by (RefLink[PermutationMax, paclet:ref/PermutationMax])[perm].

(RefLink[CycleIndexPolynomial, paclet:ref/CycleIndexPolynomial])[perm,vars,n] denotes that perm acts on a domain of n points, which must be equal to or larger than the largest moved point.

(RefLink[CycleIndexPolynomial, paclet:ref/CycleIndexPolynomial])[perm,{(Subscript[x, 1]),…,(Subscript[x, k])}] returns a monic monomial ((Subscript[x, 1])^(Subscript[a, 1]))((Subscript[x, 2])^(Subscript[a, 2])) … ((Subscript[x, k])^(Subscript[a, k])) for a permutation perm whose cyclic structure contains (Subscript[a, 1]) 1-cycles, (Subscript[a, 2]) 2-cycles, etc.

(RefLink[CycleIndexPolynomial, paclet:ref/CycleIndexPolynomial])[group,{(Subscript[x, 1]),…,(Subscript[x, k])}] returns a polynomial in which the coefficient of the monomial ((Subscript[x, 1])^(Subscript[a, 1]))((Subscript[x, 2])^(Subscript[a, 2])) … ((Subscript[x, k])^(Subscript[a, k])) gives the number of group elements whose cyclic structure contains (Subscript[a, 1]) 1-cycles, (Subscript[a, 2]) 2-cycles, etc., divided by the order of the group. It is the average of the cycle index monomials of its elements.

Variables corresponding to cycle lengths not present in the elements of the group are ignored.

If the elements of the group contain cycle lengths beyond the number of variables provided, then the result effectively uses a value 1 for those missing variables.

The length of the cycles of a permutation or a permutation group is always bounded above by the length of their support, as given by (RefLink[PermutationLength, paclet:ref/PermutationLength]). Hence, this is a safe estimate for the number of variables to include as the second argument of (RefLink[CycleIndexPolynomial, paclet:ref/CycleIndexPolynomial]).

OpenersPrimaryExamplesSection(Spacer1)Examples  (11)

OpenersExampleSection0(Spacer1)Basic Examples  (2)

Cycle index monomial of a permutation:

CycleIndexPolynomial[Cycles[{{3,2,6},{1,7},{4,5}}],{(Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3])}]

Cycle index polynomial for the alternating group on five points:

CycleIndexPolynomial[AlternatingGroup[5],{(Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3]),(Subscript[x, 4]),(Subscript[x, 5])}]

OpenersExampleSection1(Spacer1)Scope  (4)

Cycle index monomial of permutations:

CycleIndexPolynomial[Cycles[{{1,7,3},{4,10},{6,2,8},{9,11},{13,15}}],{(Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3])}]

CycleIndexPolynomial[{8,9,3,13,10,11,6,12,14,4,7,1,5,2,15},{(Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3]),(Subscript[x, 4]),(Subscript[x, 5])}]

Specify the size of the domain of action:

CycleIndexPolynomial[Cycles[{{3,4},{5,6},{8,10}}],{(Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3])},15]

CycleIndexPolynomial[{1,2,3,4,7,5,6,8,9,10},{(Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3])},15]

Cycle index polynomial of permutation groups:

CycleIndexPolynomial[DihedralGroup[8],Array[(Subscript[x, ##])&,8]]

CycleIndexPolynomial[PermutationGroup[{Cycles[{{1,2}}],Cycles[{{1,3},{2,4}}]}],{(Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3]),(Subscript[x, 4])}]

Specify the size of the domain of action:

CycleIndexPolynomial[CyclicGroup[10],Array[(Subscript[x, ##])&,10],15]

CycleIndexPolynomial[PermutationGroup[{Cycles[{{1,2}}],Cycles[{{1,3},{2,4}}]}],{(Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3]),(Subscript[x, 4])},10]

OpenersExampleSection3(Spacer1)Applications  (1)

Cycle index polynomials are essential in Pólya's theory of counting. The classical example is counting how many necklaces can be formed with beads of different colors:

Suppose there is a necklace with 10 beads, invariant under cyclic rotations:

poly=CycleIndexPolynomial[CyclicGroup[10],Array[Subscript[a,##]&,10]]

Suppose that there are beads of three colors, denoted by r, g, b:

rgbpoly=poly/.Subscript[a,i_]->(r^i)+(g^i)+(b^i)//Expand

For instance, there are 252 necklaces with three r beads, five g beads and two b beads:

Coefficient[rgbpoly,(r^3) (g^5) (b^2)]

This can be checked by actual construction of the necklaces:

GroupOrbits[CyclicGroup[10],Permutations[{r,r,r,g,g,g,g,g,b,b}],Permute]//Length

If the necklace is considered to also be invariant under reflections along a diameter, then the symmetry group is dihedral:

poly=CycleIndexPolynomial[DihedralGroup[10],Array[Subscript[a,##]&,10]]

Now the counts are different:

rgbpoly=poly/.Subscript[a,i_]->(r^i)+(g^i)+(b^i)//Expand

Coefficient[rgbpoly,(r^3) (g^5) (b^2)]

OpenersExampleSection4(Spacer1)Properties & Relations  (4)

The identity permutation has degree zero and hence does not move any point:

CycleIndexPolynomial[Cycles[{}],{(Subscript[x, 1]),(Subscript[x, 2])}]

If it acts on a set with four points, then the cycle index polynomial reflects the existence of four singletons:

CycleIndexPolynomial[Cycles[{}],{(Subscript[x, 1]),(Subscript[x, 2])},4]

Each point not moved contributes a multiplication by the first variable:

CycleIndexPolynomial[Cycles[{{5,6,7}}],{(Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3])}]

CycleIndexPolynomial[Cycles[{{1,2,3}}],{(Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3])},7]

CycleIndexPolynomial[PermutationGroup[{Cycles[{{5,6,7}}]}],{(Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3])}]//Factor

Missing variables are effectively replaced by 1:

p=CycleIndexPolynomial[SymmetricGroup[5],{(Subscript[x, 1]),(Subscript[x, 2])}]

p===CycleIndexPolynomial[SymmetricGroup[5],{(Subscript[x, 1]),(Subscript[x, 2]),1,1,1}]

CycleIndexPolynomial[SymmetricGroup[5],{(Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3]),(Subscript[x, 4]),(Subscript[x, 5])}]

p===(%/.{(Subscript[x, 3])->1,(Subscript[x, 4])->1,(Subscript[x, 5])->1})

The cycle index polynomial of a direct product of groups is the product of the cycle index polynomial of the groups:

p4=CycleIndexPolynomial[CyclicGroup[4],{(Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3]),(Subscript[x, 4])}]

p5=CycleIndexPolynomial[CyclicGroup[5],{(Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3]),(Subscript[x, 4]),(Subscript[x, 5])}]

CycleIndexPolynomial[AbelianGroup[{4,5}],{(Subscript[x, 1]),(Subscript[x, 2]),(Subscript[x, 3]),(Subscript[x, 4]),(Subscript[x, 5])}]

%===Expand[p4 p5]

({{DocumentationFooterIconsRelatedFunction.png, ({{See Also}, {(RefLink[Cycles, paclet:ref/Cycles])  ▪  (RefLink[PermutationGroup, paclet:ref/PermutationGroup])  ▪  (RefLink[PermutationCycles, paclet:ref/PermutationCycles])  ▪  (RefLink[GroupOrbits, paclet:ref/GroupOrbits])}})}})

({{DocumentationFooterIconsRelatedGuide.png, ({{Related Guides}, {▪(RefLinkPlain[Group Theory, paclet:guide/GroupTheory])}})}})