Латинские квадраты — это матрица чисел 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 и распечатывает список сгенерированных латинских квадратов: