OFFSET
1,4
COMMENTS
Also called cross polytope and hyperoctahedron. For n=1, the figure is a line segment with two vertices. For n=2 the figure is a square with four edges. For n=3 the figure is an octahedron with eight triangular faces. For n=4, the figure is a 16-cell with sixteen tetrahedral facets. The Schläfli symbol, {3,...,3,4}, of the regular n-dimensional orthoplex (n>1) consists of n-2 threes followed by a four. Each of its 2^n facets is an (n-1)-dimensional simplex. The chiral colorings of its facets come in pairs, each the reflection of the other.
Also the number of chiral pairs of colorings of the vertices of a regular n-dimensional orthotope (cube) using up to k colors.
LINKS
Robert A. Russell, Table of n, a(n) for n = 1..78
E. M. Palmer and R. W. Robinson, Enumeration under two representations of the wreath product, Acta Math., 131 (1973), 123-143.
Wikipedia, Cross-polytope
FORMULA
The algorithm used in the Mathematica program below assigns each permutation of the axes to a partition of n. It then determines the number of permutations for each partition and the cycle index for each partition.
A(k,n) = A325012(n,k) - A325013(n,k) = (A325012(n,k) - A325015(n,k)) / 2 = A325013(n,k) - A325015(n,k).
A(n,k) = Sum_{j=2..2^n} A325018(n,j) * binomial(k,j).
EXAMPLE
Array begins with A(1,1):
0 1 3 6 10 15 21 28 ...
0 0 3 15 45 105 210 378 ...
0 1 66 920 6350 29505 106036 317856 ...
0 94 97974 10700090 390081800 7280687610 86121007714 730895668104 ...
For A(2,3)=3, each square has one of the three colors on two adjacent edges.
MATHEMATICA
a48[n_] := a48[n] = DivisorSum[NestWhile[#/2&, n, EvenQ], MoebiusMu[#]2^(n/#)&]/(2n); (* A000048 *)
a37[n_] := a37[n] = DivisorSum[n, MoebiusMu[n/#]2^#&]/n; (* A001037 *)
CI0[{n_Integer}] := CI0[{n}] = CI[Transpose[If[EvenQ[n], p2 = IntegerExponent[n, 2]; sub = Divisors[n/2^p2]; {2^(p2+1) sub, a48 /@ (2^p2 sub) }, sub = Divisors[n]; {sub, a37 /@ sub}]]] 2^(n-1); (* even perm. *)
CI1[{n_Integer}] := CI1[{n}] = CI[sub = Divisors[n]; Transpose[If[EvenQ[n], {sub, a37 /@ sub}, {2 sub, a48 /@ sub}]]] 2^(n-1); (* odd perm. *)
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)
cix[{a_, b_}, {c_, d_}] := {LCM[a, c], (a b c d)/LCM[a, c]};
Unprotect[Times]; Times[CI[a_List], CI[b_List]] := (* combine *) CI[compress[Flatten[Outer[cix, a, b, 1], 1]]]; Protect[Times];
CI0[p_List] := CI0[p] = Expand[CI0[Drop[p, -1]] CI0[{Last[p]}] + CI1[Drop[p, -1]] CI1[{Last[p]}]]
CI1[p_List] := CI1[p] = Expand[CI0[Drop[p, -1]] CI1[{Last[p]}] + CI1[Drop[p, -1]] CI0[{Last[p]}]]
pc[p_List] := Module[{ci, mb}, mb = DeleteDuplicates[p]; ci = Count[p, #] & /@ mb; n!/(Times @@ (ci!) Times @@ (mb^ci))] (* partition count *)
row[n_Integer] := row[n] = Factor[(Total[((CI0[#] - CI1[#]) pc[#]) & /@ IntegerPartitions[n]])/(n! 2^n)] /. CI[l_List] :> j^(Total[l][[2]])
array[n_, k_] := row[n] /. j -> k
Table[array[n, d-n+1], {d, 1, 10}, {n, 1, d}] // Flatten
CROSSREFS
KEYWORD
AUTHOR
Robert A. Russell, May 27 2019
STATUS
approved