login

Reminder: The OEIS is hiring a new managing editor, and the application deadline is January 26.

Number of ways of placing n nonattacking rooks on a toroidal board of 2n^2 equilateral triangular spaces.
0

%I #11 Nov 13 2024 08:29:40

%S 2,4,6,48,30,1152,266,45824,4050,2736000,75702,233017344,2060734

%N Number of ways of placing n nonattacking rooks on a toroidal board of 2n^2 equilateral triangular spaces.

%C The board is formed by identifying opposite edges of a 60°/120° rhombus, tiled by equilateral triangles with n triangles along each edge.

%C 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.

%C Also counts the number of 3 X n matrices such that each row is a permutation of {1, ..., n}, the first row is the identity permutation (1 .. n), and each column sums to either 0 or 1 (mod n).

%C When n = 2k+1, the rooks must be either all on white spaces or all on black spaces (using the obvious parity coloring) and the problem is equivalent to A006717(k) for each case. When n = 2k, there are k rooks on white spaces and k rooks on black spaces.

%F a(2k+1) = 2 * A006717(k).

%e For n = 4, the a(4) = 48 arrangements are generated from one solution by symmetries of the toroidal grid:

%e o---o---o---o---o

%e / \ /X\ / \ / \ /

%e o---o---o---o---o

%e / \X/ \ / \ / \ /

%e o---o---o---o---o

%e / \ / \ / \ / \X/

%e o---o---o---o---o

%e / \ / \ /X\ / \ /

%e o---o---o---o---o

%o (MiniZinc)

%o % minizinc -D 'N=6' -s --all-solutions a.mzn

%o include "globals.mzn";

%o include "alldifferent.mzn";

%o int: N;

%o array[1..N] of var 1..N: perm1;

%o array[1..N] of var 1..N: perm2;

%o constraint alldifferent(perm1);

%o constraint alldifferent(perm2);

%o constraint forall(i in 1..N)(perm1[i] + perm2[i] + i in {N,N+1,2*N,2*N+1,3*N});

%o solve satisfy;

%o output [show(i) ++ " " | i in 1..N];

%o output [show(perm1[i]) ++ " " | i in 1..N];

%o output [show(perm2[i]) ++ " " | i in 1..N];

%Y Cf. A375800, A006717, A002047, A062166, A067015, A342372.

%K nonn,more

%O 1,1

%A _Hugh Robinson_, Nov 04 2024