cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A327084 Array read by descending antidiagonals: A(n,k) is the number of unoriented colorings of the edges of a regular n-dimensional simplex using up to k colors.

Original entry on oeis.org

1, 2, 1, 3, 4, 1, 4, 10, 11, 1, 5, 20, 66, 34, 1, 6, 35, 276, 792, 156, 1, 7, 56, 900, 10688, 25506, 1044, 1, 8, 84, 2451, 90005, 1601952, 2302938, 12346, 1, 9, 120, 5831, 533358, 43571400, 892341888, 591901884, 274668
Offset: 1

Views

Author

Robert A. Russell, Aug 19 2019

Keywords

Comments

An n-dimensional simplex has n+1 vertices and (n+1)*n/2 edges. For n=1, the figure is a line segment with one edge. For n=2, the figure is a triangle with three edges. For n=3, the figure is a tetrahedron with six edges. The Schläfli symbol, {3,...,3}, of the regular n-dimensional simplex consists of n-1 threes. Two unoriented colorings are the same if congruent; chiral pairs are counted as one.
A(n,k) is also the number of unoriented colorings of (n-2)-dimensional regular simplices in an n-dimensional simplex using up to k colors. Thus, A(2,k) is also the number of unoriented colorings of the vertices (0-dimensional simplices) of an equilateral triangle.

Examples

			Array begins with A(1,1):
  1  2   3     4     5      6       7       8        9       10 ...
  1  4  10    20    35     56      84     120      165      220 ...
  1 11  66   276   900   2451    5831   12496    24651    45475 ...
  1 34 792 10688 90005 533358 2437848 9156288 29522961 84293770 ...
  ...
For A(2,3) = 10, the nine achiral colorings are AAA, AAB, AAC, ABB, ACC, BBB, BBC, BCC, and CCC. The chiral pair is ABC-ACB.
		

Crossrefs

Cf. A327083 (oriented), A327085 (chiral), A327086 (achiral), A327088 (exactly k colors), A325000 (vertices, facets), A337884 (faces, peaks), A337408 (orthotope edges, orthoplex ridges), A337412 (orthoplex edges, orthotope ridges).
Rows 1-4 are A000027, A000292, A063842(n-1), A063843.
Cf. A063841 (k-multigraphs on n nodes).

Programs

  • Mathematica
    CycleX[{2}] = {{1,1}}; (* cycle index for permutation with given cycle structure *)
    CycleX[{n_Integer}] := CycleX[n] = If[EvenQ[n], {{n/2,1}, {n,(n-2)/2}}, {{n,(n-1)/2}}]
    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)
    CycleX[p_List] := CycleX[p] = compress[Join[CycleX[Drop[p, -1]], If[Last[p] > 1, CycleX[{Last[p]}], ## &[]], If[# == Last[p], {#, Last[p]}, {LCM[#, Last[p]], GCD[#, Last[p]]}] & /@ Drop[p, -1]]]
    pc[p_List] := 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[pc[#] j^Total[CycleX[#]][[2]] & /@ IntegerPartitions[n+1]]/(n+1)!]
    array[n_, k_] := row[n] /. j -> k
    Table[array[n,d-n+1], {d,1,10}, {n,1,d}] // Flatten
    (* Using Fripertinger's exponent per Andrew Howroyd code in A063841: *)
    pc[p_] := Module[{ci, mb}, mb = DeleteDuplicates[p]; ci = Count[p, #] &/@ mb; Total[p]!/(Times @@ (ci!) Times @@ (mb^ci))]
    ex[v_] := Sum[GCD[v[[i]], v[[j]]], {i,2,Length[v]}, {j,i-1}] + Total[Quotient[v,2]]
    array[n_,k_] := Total[pc[#]k^ex[#] &/@ IntegerPartitions[n+1]]/(n+1)!
    Table[array[n,d-n+1], {d,10}, {n,d}] // Flatten
    (* Another program (translated from Andrew Howroyd's PARI code): *)
    permcount[v_] := Module[{m=1, s=0, k=0, t}, For[i=1, i <= Length[v], i++, t = v[[i]]; k = If[i>1 && t == v[[i-1]], k+1, 1]; m *= t*k; s += t]; s!/m];
    edges[v_] := Sum[GCD[v[[i]], v[[j]]], {i, 2, Length[v]}, {j, 1, i-1}] + Total[Quotient[v, 2]];
    T[n_, k_] := Module[{s = 0}, Do[s += permcount[p]*k^edges[p], {p, IntegerPartitions[n+1]}]; s/(n+1)!];
    Table[T[n-k+1, k], {n, 1, 9}, {k, n, 1, -1}] // Flatten (* Jean-François Alcover, Jan 08 2021 *)
  • PARI
    permcount(v) = {my(m=1, s=0, k=0, t); for(i=1, #v, t=v[i]; k=if(i>1&&t==v[i-1], k+1, 1); m*=t*k; s+=t); s!/m}
    edges(v) = {sum(i=2, #v, sum(j=1, i-1, gcd(v[i], v[j]))) + sum(i=1, #v, v[i]\2)}
    T(n, k) = {my(s=0); forpart(p=n+1, s+=permcount(p)*k^edges(p)); s/(n+1)!} \\ Andrew Howroyd, Sep 06 2019
    
  • Python
    from itertools import combinations
    from math import prod, gcd, factorial
    from fractions import Fraction
    from sympy.utilities.iterables import partitions
    def A327084_T(n,k): return int(sum(Fraction(k**(sum(p[r]*p[s]*gcd(r,s) for r,s in combinations(p.keys(),2))+sum((q>>1)*r+(q*r*(r-1)>>1) for q, r in p.items())),prod(q**r*factorial(r) for q, r in p.items())) for p in partitions(n+1))) # Chai Wah Wu, Jul 09 2024

Formula

The algorithm used in the Mathematica program below assigns each permutation of the vertices to a partition of n+1. It then determines the number of permutations for each partition and the cycle index for each partition.
A(n,k) = Sum_{j=1..(n+1)*n/2} A327088(n,j) * binomial(k,j).
A(n,k) = A327083(n,k) - A327085(n,k) = (A327083(n,k) + A327086(n,k)) / 2 = A327085(n,k) + A327086(n,k).
A(n,k) = A063841(n+1,k-1).