Латинский квадрат представляет собой квадрат , который не повторяется символы либо X или Y столбцов . Например:
ABCD
DABC
CDAB
BCDA
один из таких квадратов. Обратите внимание, что каждый столбец и строка содержат перестановку из 4 одинаковых букв.
Тем не менее, у нашего латинского квадрата есть проблема: если бы я повернул второй ряд ( DABC
) 1 влево, я бы закончил с тем ABCD
, что идентично перестановке над ним. Если невозможно повернуть один столбец / строку и получить другой столбец / строку, то мы считаем, что квадрат безопасен для вращения .
Например:
ABCD
BDAC
CADB
DCBA
это вращение безопасно. Сетка имеет следующие свойства:
- Точка [0, N] использует N-й символ
- Точки [0, N] и [N, 0] всегда являются одним и тем же символом . (Я также хотел бы сказать, что [x, y] и [y, x] также всегда являются одной и той же буквой, но я не могу доказать это)
Ваша задача - распечатать 1 латинский квадрат, безопасный для вращения, когда передано N. Мне все равно, выводите ли вы буквы, цифры, список или двумерный массив. Если вы используете числа, верхний столбец и строка должны быть 0,1,2,3,...
(в этом порядке). Если вы используете буквы, то это должно бытьA,B,C,D,....
Например, если вы ввели 4, вы должны вывести:
0,1,2,3 0,1,2,3
1,3,0,2 or 1,0,3,2
2,0,3,1 2,3,1,0
3,2,1,0 3,2,0,1
Нет безопасных для поворота латинских квадратов размером менее 4. Мне все равно, что делает ваша программа, если N меньше 4. Для любопытных, число безопасных для поворота квадратов равно (начиная с 4): 2,5,5906,(too long to calculate)
Это код-гольф , поэтому постарайтесь сделать ответы максимально короткими на вашем любимом языке!
источник
N
за недостаточного качества случайных чисел?)1,2,3,...
?Ответы:
Pyth - 29 байт
Грубая сила.
Онлайн не заканчивается даже для
n=4
, но вы можете попробовать его локально или запустить эту модифицированную версию онлайн еще на один байт .источник
Sqlserver 2012 - 918 байт
На моем боксе это работает для @k = 5, хотя это занимает 16 секунд.
Это код сборки кода (будьте осторожны, Skynet, у вас есть конкуренция)
Есть ли цена за самый длинный сценарий?
Попробуйте онлайн!
источник