Arithmetic functions for groups of order 2^n

Summary
Below is a summary of the behavior of the average values for important arithmetic functions, where the average is computed by equally weighting all isomorphism classes of groups of that order:

Below is a summary of the behavior of the average values where the groups are weighted by the cohomology tree probability distribution:

Up to isomorphism
In the table here, a row value of $$n$$ means we are looking at the groups of order $$2^n$$. The entry in a cell is the number of isomorphism classes of groups of order $$2^n$$ for which the function takes the value indicated in the column. Note that, for greater visual clarity, all zeros that occur after the last nonzero entry in a row are omitted and the corresponding entry is left blank.



Here is the GAP code to generate this information:

We use the function SortArithmeticFunctionSizes, which is not in-built but is easy to code (follow link to get code). We also use the in-built function NilpotencyClassOfGroup. Using these functions, the above data can be generated as follows:

gap> SortArithmeticFunctionSizes(2,0,NilpotencyClassOfGroup); [ [ 0, 1 ] ] gap> SortArithmeticFunctionSizes(2,1,NilpotencyClassOfGroup); [ [ 0, 0 ], [ 1, 1 ] ] gap> SortArithmeticFunctionSizes(2,2,NilpotencyClassOfGroup); [ [ 0, 0 ], [ 1, 2 ], [ 2, 0 ] ] gap> SortArithmeticFunctionSizes(2,3,NilpotencyClassOfGroup); [ [ 0, 0 ], [ 1, 3 ], [ 2, 2 ], [ 3, 0 ] ] gap> SortArithmeticFunctionSizes(2,4,NilpotencyClassOfGroup); [ [ 0, 0 ], [ 1, 5 ], [ 2, 6 ], [ 3, 3 ], [ 4, 0 ] ] gap> SortArithmeticFunctionSizes(2,5,NilpotencyClassOfGroup); [ [ 0, 0 ], [ 1, 7 ], [ 2, 26 ], [ 3, 15 ], [ 4, 3 ], [ 5, 0 ] ] gap> SortArithmeticFunctionSizes(2,6,NilpotencyClassOfGroup); [ [ 0, 0 ], [ 1, 11 ], [ 2, 117 ], [ 3, 114 ], [ 4, 22 ], [ 5, 3 ], [ 6, 0 ] ] gap> SortArithmeticFunctionSizes(2,7,NilpotencyClassOfGroup); [ [ 0, 0 ], [ 1, 15 ], [ 2, 947 ], [ 3, 1137 ], [ 4, 197 ], [ 5, 29 ], [ 6, 3 ], [ 7, 0 ] ] gap> SortArithmeticFunctionSizes(2,8,NilpotencyClassOfGroup); [ [ 0, 0 ], [ 1, 22 ], [ 2, 31742 ], [ 3, 21325 ], [ 4, 2642 ], [ 5, 320 ], [ 6, 38 ], [ 7, 3 ], [ 8, 0 ] ]

Although the command can in principle be run for $$2^8$$, it requires a huge memory allocation (this can be controlled setting the "-o" command line option when starting GAP). To obtain the result for $$2^8$$, it is best to split the list of all small groups of order $$2^8$$ into sub-lists and run the function on each.

Here is the same information, now given in terms of the fraction of groups of a given order that are of a given nilpotency class. For ease of comparison, all fractions are written as decimals, rounded to the fourth decimal place.

Below is the information for the probability distribution by nilpotency class using the cohomology tree probability distribution:



Up to isoclinism
We give below information on the number of equivalence classes under the equivalence relation of being isoclinic groups, for each nilpotency class. The equivalence classes under isoclinism are also called Hall-Senior families. For visual clarity, the cells with zero entries are omitted. We know that isoclinic groups have same nilpotency class, with the exception of the trivial group (which has class zero) being isoclinic to nontrivial abelian groups (which have class 1).

Derived length


Here is the GAP code to generate this information:

We use the function SortArithmeticFunctionSizes, which is not in-built but is easy to code (follow link to get code). We also use the in-built function DerivedLength. Using these functions, the above data can be generated as follows: gap> SortArithmeticFunctionSizes(2,0,DerivedLength); [ [ 0, 1 ] ] gap> SortArithmeticFunctionSizes(2,1,DerivedLength); [ [ 0, 0 ], [ 1, 1 ] ] gap> SortArithmeticFunctionSizes(2,2,DerivedLength); [ [ 0, 0 ], [ 1, 2 ], [ 2, 0 ] ] gap> SortArithmeticFunctionSizes(2,3,DerivedLength); [ [ 0, 0 ], [ 1, 3 ], [ 2, 2 ], [ 3, 0 ] ] gap> SortArithmeticFunctionSizes(2,4,DerivedLength); [ [ 0, 0 ], [ 1, 5 ], [ 2, 9 ], [ 3, 0 ], [ 4, 0 ] ] gap> SortArithmeticFunctionSizes(2,5,DerivedLength); [ [ 0, 0 ], [ 1, 7 ], [ 2, 44 ], [ 3, 0 ], [ 4, 0 ], [ 5, 0 ] ] gap> SortArithmeticFunctionSizes(2,6,DerivedLength); [ [ 0, 0 ], [ 1, 11 ], [ 2, 256 ], [ 3, 0 ], [ 4, 0 ], [ 5, 0 ], [ 6, 0 ] ] gap> SortArithmeticFunctionSizes(2,7,DerivedLength); [ [ 0, 0 ], [ 1, 15 ], [ 2, 2299 ], [ 3, 14 ], [ 4, 0 ], [ 5, 0 ], [ 6, 0 ], [ 7, 0 ] ] gap> SortArithmeticFunctionSizes(2,8,DerivedLength); [ [ 0, 0 ], [ 1, 22 ], [ 2, 55660 ], [ 3, 410 ], [ 4, 0 ], [ 5, 0 ], [ 6, 0 ], [ 7, 0 ], [ 8, 0 ] ]

Here is the same information, now given in terms of the fraction of groups of a given order that are of a given derived length. For ease of comparison, all fractions are written as decimals, rounded to the fourth decimal place.

Below is information for the probability distribution of derived length under the cohomology tree probability distribution:



Prime-base logarithm of exponent


The prime-base logarithm of exponent, in this case, is $$\log_2E$$ where $$E$$ is the exponent of the group.

Here is the GAP code to generate this information:

We use the function SortArithmeticFunctionSizes, which is not in-built but is easy to code (follow link to get code). We also use the in-built functions Exponent and GAP:Log. Using these functions, the above data can be generated as follows:

gap> SortArithmeticFunctionSizes(2,0,G -> Log(Exponent(G),2)); [ [ 0, 1 ] ] gap> SortArithmeticFunctionSizes(2,1,G -> Log(Exponent(G),2)); [ [ 0, 0 ], [ 1, 1 ] ] gap> SortArithmeticFunctionSizes(2,2,G -> Log(Exponent(G),2)); [ [ 0, 0 ], [ 1, 1 ], [ 2, 1 ] ] gap> SortArithmeticFunctionSizes(2,3,G -> Log(Exponent(G),2)); [ [ 0, 0 ], [ 1, 1 ], [ 2, 3 ], [ 3, 1 ] ] gap> SortArithmeticFunctionSizes(2,4,G -> Log(Exponent(G),2)); [ [ 0, 0 ], [ 1, 1 ], [ 2, 7 ], [ 3, 5 ], [ 4, 1 ] ] gap> SortArithmeticFunctionSizes(2,5,G -> Log(Exponent(G),2)); [ [ 0, 0 ], [ 1, 1 ], [ 2, 23 ], [ 3, 21 ], [ 4, 5 ], [ 5, 1 ] ] gap> SortArithmeticFunctionSizes(2,6,G -> Log(Exponent(G),2)); [ [ 0, 0 ], [ 1, 1 ], [ 2, 96 ], [ 3, 137 ], [ 4, 27 ], [ 5, 5 ], [ 6, 1 ] ] gap> SortArithmeticFunctionSizes(2,7,G -> Log(Exponent(G),2)); [ [ 0, 0 ], [ 1, 1 ], [ 2, 823 ], [ 3, 1269 ], [ 4, 202 ], [ 5, 27 ], [ 6, 5 ], [ 7, 1 ] ]

Here is the same information, now given in terms of the fraction of groups of a given order that have a given prime-base logarithm of exponent. For ease of comparison, all fractions are written as decimals, rounded to the fourth decimal place.

Below is information on the probability distribution of prime-base logarithm of exponent under the cohomology tree probability distribution:



Frattini length


Here is the GAP code to generate this information:

We use the functions SortArithmeticFunctionSizes and FrattiniLength, which are not in-built but are easy to code (follow link to get code). With this function written, the above data can be generated directly:

gap> SortArithmeticFunctionSizes(2,0,FrattiniLength); [ [ 0, 1 ] ] gap> SortArithmeticFunctionSizes(2,1,FrattiniLength); [ [ 0, 0 ], [ 1, 1 ] ] gap> SortArithmeticFunctionSizes(2,2,FrattiniLength); [ [ 0, 0 ], [ 1, 1 ], [ 2, 1 ] ] gap> SortArithmeticFunctionSizes(2,3,FrattiniLength); [ [ 0, 0 ], [ 1, 1 ], [ 2, 3 ], [ 3, 1 ] ] gap> SortArithmeticFunctionSizes(2,4,FrattiniLength); [ [ 0, 0 ], [ 1, 1 ], [ 2, 7 ], [ 3, 5 ], [ 4, 1 ] ] gap> SortArithmeticFunctionSizes(2,5,FrattiniLength); [ [ 0, 0 ], [ 1, 1 ], [ 2, 23 ], [ 3, 21 ], [ 4, 5 ], [ 5, 1 ] ] gap> SortArithmeticFunctionSizes(2,6,FrattiniLength); [ [ 0, 0 ], [ 1, 1 ], [ 2, 94 ], [ 3, 139 ], [ 4, 27 ], [ 5, 5 ], [ 6, 1 ] ] gap> SortArithmeticFunctionSizes(2,7,FrattiniLength); [ [ 0, 0 ], [ 1, 1 ], [ 2, 816 ], [ 3, 1276 ], [ 4, 202 ], [ 5, 27 ], [ 6, 5 ], [ 7, 1 ] ]

Here is the same information, now given in terms of the fraction of groups of a given order that are of a given Frattini length. For ease of comparison, all fractions are written as decimals, rounded to the fourth decimal place.



Minimum size of generating set


This is also equal to the prime-base logarithm of the order of the Frattini quotient.

Here is the same information, now given in terms of the fraction of groups of a given order that have a given minimum size of generating set. For ease of comparison, all fractions are written as decimals, rounded to the fourth decimal place.

Below is information on the probability distribution of minimum size of generating set under the cohomology tree probability distribution:



Rank of a p-group




Nilpotency class-cum-derived length
Note that in considering the possibilities here, we use the fact that derived length is logarithmically bounded by nilpotency class; explicitly, the derived length is at most $$[\log_2 c] + 1$$ where $$[]$$ is the greatest integer function and $$c$$ is the nilpotency class. On the other hand, derived length gives no upper bound on nilpotency class for derived length at least 2.





Element structure and nilpotency class
The arithmetic function we consider here is the smallest nilpotency class among all groups that are order-cum-power statistics-equvalent to it, i.e., have the same order-cum-power statistics.

Here is the GAP code to generate this information:

gap> SortArithmeticFunctionSizes(2,0,MinimumNilpotencyClassWithSameOrderCumPowerStatistics); [ [ 0, 1 ] ] gap> SortArithmeticFunctionSizes(2,1,MinimumNilpotencyClassWithSameOrderCumPowerStatistics); [ [ 0, 0 ], [ 1, 1 ] ] gap> SortArithmeticFunctionSizes(2,2,MinimumNilpotencyClassWithSameOrderCumPowerStatistics); [ [ 0, 0 ], [ 1, 2 ], [ 2, 0 ] ] gap> SortArithmeticFunctionSizes(2,3,MinimumNilpotencyClassWithSameOrderCumPowerStatistics); [ [ 0, 0 ], [ 1, 3 ], [ 2, 2 ], [ 3, 0 ] ] gap> SortArithmeticFunctionSizes(2,4,MinimumNilpotencyClassWithSameOrderCumPowerStatistics); [ [ 0, 0 ], [ 1, 7 ], [ 2, 4 ], [ 3, 3 ], [ 4, 0 ] ] gap> SortArithmeticFunctionSizes(2,5,MinimumNilpotencyClassWithSameOrderCumPowerStatistics); [ [ 0, 0 ], [ 1, 15 ], [ 2, 18 ], [ 3, 15 ], [ 4, 3 ], [ 5, 0 ] ] gap> SortArithmeticFunctionSizes(2,6,MinimumNilpotencyClassWithSameOrderCumPowerStatistics); [ [ 0, 0 ], [ 1, 44 ], [ 2, 95 ], [ 3, 103 ], [ 4, 22 ], [ 5, 3 ], [ 6, 0 ] ]

In the next table, we give the groups of a given nilpotency class and with the minimum nilpotency class among all groups that are order-cum-power statistics-equivalent to it.