OFFSET
2,3
COMMENTS
An n-dimensional simplex has n+1 vertices, C(n+1,3) faces, and C(n+1,3) peaks, which are (n-3)-dimensional simplexes. For n=2, the figure is a triangle with one face. For n=3, the figure is a tetrahedron with four triangular faces and four peaks (vertices). For n=4, the figure is a 4-simplex with ten triangular faces and ten peaks (edges). The Schläfli symbol {3,...,3}, of the regular n-dimensional simplex consists of n-1 3's. Two oriented colorings are the same if one is a rotation of the other; chiral pairs are counted as two.
The algorithm used in the Mathematica program below assigns each permutation of the vertices to a cycle-structure partition of n+1. It then determines the number of permutations for each partition and the cycle index for each partition. If the value of m is increased, one can enumerate colorings of higher-dimensional elements beginning with T(m,1).
LINKS
FORMULA
EXAMPLE
Triangle begins with T(2,1):
1
1 3 3 2
1 38 1080 14040 85500 274104 493920 504000 272160 60480
...
For T(3,2)=3, the tetrahedron has one, two, or three faces (vertices) of one color.
MATHEMATICA
m=2; (* dimension of color element, here a triangular face *)
lw[n_, k_]:=lw[n, k]=DivisorSum[GCD[n, k], MoebiusMu[#]Binomial[n/#, k/#]&]/n (*A051168*)
cxx[{a_, b_}, {c_, d_}]:={LCM[a, c], GCD[a, c] b d}
compress[x:{{_, _} ...}] := (s=Sort[x]; For[i=Length[s], i>1, i-=1, If[s[[i, 1]]==s[[i-1, 1]], s[[i-1, 2]]+=s[[i, 2]]; s=Delete[s, i], Null]]; s)
combine[a : {{_, _} ...}, b : {{_, _} ...}] := Outer[cxx, a, b, 1]
CX[p_List, 0] := {{1, 1}} (* cycle index for partition p, m vertices *)
CX[{n_Integer}, m_] := If[2m>n, CX[{n}, n-m], CX[{n}, m] = Table[{n/k, lw[n/k, m/k]}, {k, Reverse[Divisors[GCD[n, m]]]}]]
CX[p_List, m_Integer] := CX[p, m] = Module[{v = Total[p], q, r}, If[2 m > v, CX[p, v - m], q = Drop[p, -1]; r = Last[p]; compress[Flatten[Join[{{CX[q, m]}}, Table[combine[CX[q, m - j], CX[{r}, j]], {j, Min[m, r]}]], 2]]]]
pc[p_] := Module[{ci, mb}, mb = DeleteDuplicates[p]; ci = Count[p, #] &/@ mb; Total[p]!/(Times @@ (ci!) Times @@ (mb^ci))] (* partition count *)
row[n_Integer] := row[n] = Factor[Total[If[EvenQ[Total[1-Mod[#, 2]]], pc[#] j^Total[CX[#, m+1]][[2]], 0] & /@ IntegerPartitions[n+1]]/((n+1)!/2)]
array[n_, k_] := row[n] /. j -> k
Table[LinearSolve[Table[Binomial[i, j], {i, Binomial[n+1, m+1]}, {j, Binomial[n+1, m+1]}], Table[array[n, k], {k, Binomial[n+1, m+1]}]], {n, m, m+4}] // Flatten
CROSSREFS
KEYWORD
nonn,tabf
AUTHOR
Robert A. Russell, Oct 10 2020
STATUS
approved