# Are the character degrees determined by the conjugacy class sizes?

The computation below (part 1) shows that if two finite groups of order at most $$100$$ have the same (ordered) list of conjugacy class sizes, then they also have the same (ordered) list of (irreducible) character degrees.

Question: Is it true in general?
If so, is there an explicit way to determine the character degrees from the conjugacy class sizes?

The converse is false, SmallGroup(64,42) and SmallGroup(64,134)) are counterexamples. At order at most $$100$$, there are exactly four types of counter-examples, three ot order $$64$$, and one of order $$96$$, see the computation below (part 2).

Computation

gap> BL:=[]; for d in [1..100] do n:=NrSmallGroups(d);; for r in [1..n] do g:=SmallGroup(d,r);; if not IsAbelian(g) then SC:=CharacterDegrees(g);; CC:=ConjugacyClasses(g);; L:=List(CC,c->Size(c));; Sort(L); Add(BL,[SC,L]); fi; od; od;


Part 1

sage: LLL=[[] for i in range(100)]
....: for l in BL:
....:     LLL[len(l[1])].append(l)
....: for ll in LLL:
....:     S=[]
....:     for l1 in ll:
....:         if not l1[1] in S:
....:             S.append(l1[1])
....:             SS=[l1[0]]
....:             for l2 in ll:
....:                 if l1[1]==l2[1]:
....:                     if l2[0] not in SS:
....:                         SS.append(l2[0])
....:             if len(SS)>1:
....:                 print(l1[1]); print(SS)
sage:


Part 2

sage: LLL=[[] for i in range(100)]
....: for l in L:
....:     LLL[len(l[1])].append(l)
....: for ll in LLL:
....:     S=[]
....:     for l1 in ll:
....:         if not l1[0] in S:
....:             S.append(l1[0])
....:             SS=[l1[1]]
....:             for l2 in ll:
....:                 if l1[0]==l2[0]:
....:                     if l2[1] not in SS:
....:                         SS.append(l2[1])
....:             if len(SS)>1:
....:                 print(l1[0]); print(SS)
....:
[[1, 8], [2, 6], [4, 2]]
[[1, 1, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 8, 8, 8, 8], [1, 1, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8], [1, 1, 1, 1, 2, 2, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8]]
[[1, 8], [2, 10], [4, 3]]
[[1, 1, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 12, 12, 12, 12], [1, 1, 2, 2, 2, 2, 2, 3, 3, 4, 4, 4, 4, 4, 6, 6, 6, 8, 8, 12, 12]]
[[1, 16], [2, 4], [4, 2]]
[[1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4], [1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]]
[[1, 8], [2, 14]]
[[1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 8, 8, 8, 8], [1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4]]

gap> S:=List([42,134],n->SmallGroup(64,n));;
gap> for g in S do Print(CharacterDegrees(g)); od;
[ [ 1, 8 ], [ 2, 6 ], [ 4, 2 ] ]
[ [ 1, 8 ], [ 2, 6 ], [ 4, 2 ] ]
gap> for g in S do L:=List(ConjugacyClasses(g),c->Size(c));; Sort(L);; Print(L); od;
[ 1, 1, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 8, 8, 8, 8 ]
[ 1, 1, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8 ]

• From experience, I would say that a conjecture like that has very little chance of being true! You could ask the converse question of whether the character degrees determine the conjugacy class sizes, but I am sure the answer to that is also no. – Derek Holt Aug 6 '20 at 8:03
• @DerekHolt: Your second sentence is answered in the post. – Sebastien Palcoux Aug 6 '20 at 9:09
• There is quite a lot of literature trying to relate class sizes and character degrees, by authors such as S. Dolfi. I think it is fair to say that the relationship between the two is unclear. – Geoff Robinson Aug 6 '20 at 9:51
• According to the body of the question, I guess you mean "determined by" in the title. – François Brunault Aug 6 '20 at 12:14
• @FrançoisBrunault: Ok, I fixed the title. – Sebastien Palcoux Aug 6 '20 at 14:27

SmallGroup(128,227) and SmallGroup(128,731)) are counterexamples.

gap> S:=List([227,731],n->SmallGroup(128,n));;
gap> for g in S do L:=List(ConjugacyClasses(g),c->Size(c));; Sort(L);; Print(L); od;
[ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8, 8 ]
[ 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8, 8, 8, 8, 8 ]
gap> for g in S do Print(CharacterDegrees(g)); od;
[ [ 1, 16 ], [ 2, 12 ], [ 4, 4 ] ]
[ [ 1, 8 ], [ 2, 22 ], [ 4, 2 ] ]


Here is a general comment related to my answer to a previous MO question. If $$\chi$$ is a complex irreducible character of a finite group $$G$$, and $$\chi$$ takes a root of unity value at $$x \in G$$, then $$\chi(1)$$ divides $$[G:C_{G}(x)]$$, since $$\frac{[G:C_{G}(x)] \chi(x)}{\chi(1)}$$ is an algebraic integer. Many irreducible characters will take a root of unity value somewhere, since a theorem of J.G. Thompson states that any irreducible character $$\chi$$ takes value $$0$$ or a root of unity on at least $$\frac{1}{3}$$ of the group elements.

However, notice that if $$G$$ is a $$p$$-group, then no non-linear irreducible character of $$G$$ ever takes a root of unity value anywhere.

• Which previous MO question are you talking about? – Sebastien Palcoux Aug 6 '20 at 10:20
• I had to look it up. It was MO108406 – Geoff Robinson Aug 6 '20 at 10:43