OFFSET
1,4
COMMENTS
We found all transversals in the main class Latin square representatives of order n.
These results are based upon work supported by the National Science Foundation under the grants numbered DMS-1852378 and DMS-1560019.
LINKS
Brendan McKay, Combinatorial Data.
Eduard I. Vatutin, Graphical representation of the spectra.
EXAMPLE
For n=7, the number of transversals that an order 7 Latin square may have is 3, 7, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 37, 41, 43, 45, 47, 55, 63, or 133. Hence there are 36 distinct numbers of transversals of order 7 Latin squares, so a(7)=36.
PROG
(MATLAB)
%This extracts entries from each column. For an example, if
%A=[1 2 3 4; 5 6 7 8; 9 10 11 12; 13 14 15 16], and if list = (2, 1, 4),
%this code extracts the second element in the first column, the first
%element in the second column, and the fourth element in the third column.
function [output] = extract(matrix, list)
for i=1:length(list)
output(i) = matrix(list(i), i);
end
end
%Searches matrix to find transversal and outputs the transversal.
function [output] = findtransversal(matrix)
n=length(matrix);
for i=1:n
partialtransversal(i, 1)=i;
end
for i=2:n
newpartialtransversal=[];
for j=1:length(partialtransversal)
for k=1:n
if (~ismember(k, partialtransversal(j, :)))&(~ismember(matrix(k, i), extract(matrix, partialtransversal(j, :))))
newpartialtransversal=[newpartialtransversal; [partialtransversal(j, :), k]];
end
end
end
partialtransversal=newpartialtransversal;
end
output=partialtransversal;
end
%Takes input of n^2 numbers with no spaces between them and converts it
%into an n by n matrix.
function [A] = tomatrix(input)
n=sqrt(floor(log10(input))+2);
for i=1:n^2
temp(i)=mod(floor(input/(10^(i-1))), 10);
end
for i=1:n
for j=1:n
A(i, j)=temp(n^2+1-(n*(i-1)+j));
end
end
A=A+ones(n);
end
CROSSREFS
KEYWORD
nonn,hard,more
AUTHOR
STATUS
approved