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.

A308853 a(n) is the minimum absolute value of nonzero determinants of order n Latin squares.

This page as a plain text file.
%I A308853 #49 Feb 16 2025 08:33:55
%S A308853 1,3,18,80,75,126,196,144,405
%N A308853 a(n) is the minimum absolute value of nonzero determinants of order n Latin squares.
%C A308853 We apply every symbol permutation on the representatives of isotopic classes to generate Latin squares of order n and calculate the determinants.
%C A308853 These results are based upon work supported by the National Science Foundation under the grants numbered DMS-1852378 and DMS-1560019.
%H A308853 Brendan McKay, <a href="https://users.cecs.anu.edu.au/~bdm/data/latin.html">Latin squares</a>
%H A308853 Hugo Pfoertner, <a href="http://www.randomwalk.de/sequences/a309258.zip">Occurrence counts of determinant values for n=1..8</a>, zipped (2019).
%H A308853 Eric Weisstein's World of Mathematics, <a href="https://mathworld.wolfram.com/LatinSquare.html">Latin square</a>
%H A308853 Wikipedia, <a href="https://en.wikipedia.org/wiki/Latin_square">Latin square</a>
%H A308853 <a href="/index/De#determinants">Index entries for sequences related to determinants</a>
%e A308853 For n=2, the only Latin squares of order 2 are [[1, 2], [2, 1]] and [[2, 1], [1, 2]].  Therefore, the minimum absolute value of the determinants of order 2 Latin squares is 3.
%o A308853 (Sage)
%o A308853 # Takes a string and turns it into a square matrix of order n
%o A308853 def make_matrix(string,n):
%o A308853     m = []
%o A308853     row = []
%o A308853     for i in range(0,n * n):
%o A308853         if string[i] == '\n':
%o A308853             continue
%o A308853         if string[i] == ' ':
%o A308853             continue
%o A308853         row.append(Integer(string[i]) + 1)
%o A308853         if len(row) == n:
%o A308853             m.append(row)
%o A308853             row = []
%o A308853     return matrix(m)
%o A308853 # Reads a file and returns a list of the matrices in the file
%o A308853 def fetch_matrices(file_name,n):
%o A308853     matrices = []
%o A308853     with open(file_name) as f:
%o A308853         L = f.readlines()
%o A308853     for i in L:
%o A308853         matrices.append(make_matrix(i,n))
%o A308853     return matrices
%o A308853 # Takes a matrix and permutates each symbol in the matrix
%o A308853 # with the given permutation
%o A308853 def permute_matrix(matrix, permutation,n):
%o A308853     copy = deepcopy(matrix)
%o A308853     for i in range(0, n):
%o A308853         for j in range(0 , n):
%o A308853             copy[i,j] = permutation[copy[i][j] - 1]
%o A308853     return copy
%o A308853 """
%o A308853 Creates a determinant list with the following triples,
%o A308853 [Isotopy Class Representative, Permutation, Determinant]
%o A308853 The Isotopy class representatives come from a file that
%o A308853 contains all Isotopy classes.
%o A308853 """
%o A308853 def create_determinant_list(file_name,n):
%o A308853     the_list = []
%o A308853     permu = (Permutations(n)).list()
%o A308853     matrices = fetch_matrices(file_name,n)
%o A308853     for i in range(0,len(matrices)):
%o A308853         for j in permu:
%o A308853             copy = permute_matrix(matrices[i],j,n)
%o A308853             the_list.append([i,j,copy.determinant()])
%o A308853             print(len(the_list))
%o A308853     return the_list
%o A308853 # _Froylan Maldonado_, Jun 28 2019
%Y A308853 Cf. A040082, A301371 (upper bound for maximum determinant of Latin squares of order n), A309258, A309984, A309985.
%K A308853 nonn,more,hard
%O A308853 1,2
%A A308853 _Alvaro R. Belmonte_, _Eugene Fiorini_, _Peterson Lenard_, _Froylan Maldonado_, _Sabrina Traver_, _Wing Hong Tony Wong_, Jun 28 2019
%E A308853 a(8) from _Hugo Pfoertner_, Aug 24 2019
%E A308853 a(9) from _Hugo Pfoertner_, Aug 27 2019