login
A375800
Number of ways of placing 2n nonattacking rooks on a hexagonal board of equilateral triangular spaces with n spaces along each edge.
1
3, 24, 348, 7812, 255756, 11747504, 714121392
OFFSET
1,1
COMMENTS
A rook move on the equilateral triangle tessellation is a move along a path through successively edge-adjacent faces, that turns alternately left and right at each face (starting with either left or right), so that the overall direction of movement remains approximately parallel to one set of triangle edges.
Also counts the number of 3 X 2n matrices such that each row is a permutation of {1, .., 2n}, the first row is the identity permutation (1 .. 2n), and each column sums to either 3n+1 or 3n+2. This parallels how the equivalent problem for the board tessellated with hexagons (A002047) counts the number of 3 X (2n-1) zero-sum arrays.
EXAMPLE
For n = 2, the a(2) = 24 arrangements are rotations and reflections of:
o---o---o o---o---o o---o---o
/X\ / \ / \ /X\ / \ / \ /X\ / \ / \
o---o---o---o o---o---o---o o---o---o---o
/ \ / \ /X\ / \ / \ / \ / \X/ \ / \ / \ / \X/ \
o---o---o---o---o o---o---o---o---o o---o---o---o---o
\ / \ / \ / \X/ \ / \ / \ /X\ / \ /X\ / \ / \ /
o---o---o---o o---o---o---o o---o---o---o
\X/ \ / \ / \X/ \ / \ / \ / \ / \X/
o---o---o o---o---o o---o---o
(12 symmetries) (6 symmetries) (6 symmetries)
For n = 2, the a(2) = 24 matrices counted are:
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
2 3 4 1 2 3 4 1 2 4 1 3 2 4 3 1
4 2 1 3 4 3 1 2 4 2 3 1 4 1 2 3
-
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
2 4 3 1 3 1 4 2 3 2 4 1 3 2 4 1
4 2 1 3 3 4 1 2 3 4 1 2 4 3 1 2
-
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
3 4 1 2 3 4 1 2 3 4 2 1 3 4 2 1
4 1 3 2 4 2 3 1 4 1 2 3 4 1 3 2
plus the same matrices with rows 2 and 3 interchanged.
PROG
(MiniZinc)
% minizinc -D 'N=5' -s --all-solutions a375800.mzn
include "globals.mzn";
include "alldifferent.mzn";
int: N;
array[1..2*N] of var 1..2*N: perm1;
array[1..2*N] of var 1..2*N: perm2;
constraint forall(i in 1..2*N)(3*N+1 <= perm1[i]+perm2[i]+i /\ perm1[i]+perm2[i]+i <= 3*N+2);
constraint alldifferent(perm1);
constraint alldifferent(perm2);
solve satisfy;
output [show(i) ++ " " | i in 1..2*N];
output [show(perm1[i]) ++ " " | i in 1..2*N];
output [show(perm2[i]) ++ " " | i in 1..2*N];
CROSSREFS
KEYWORD
nonn,more,new
AUTHOR
Hugh Robinson, Aug 29 2024
STATUS
approved