Латинские квадраты — это матрица чисел n x n, в которой каждый элемент встречается только один раз в каждом столбце и один раз в каждой строке. Головоломки судоку, например, являются частным случаем латинских квадратов.
Следует простому и быстрому фрагменту кода для генерации латинских квадратов размером 2^N.
Следует вывод программы с n=2:
>>> latinSquare(2) 0 1 2 3 1 0 3 2 2 3 0 1 3 2 1 0 1 0 3 2 0 1 2 3 3 2 1 0 2 3 0 1 2 3 0 1 3 2 1 0 0 1 2 3 1 0 3 2 3 2 1 0 2 3 0 1 1 0 3 2 0 1 2 3
Следующий виджет запускает алгоритм на Wolfram Alpha и распечатывает список сгенерированных латинских квадратов: