Contexto
Considere matrizes quadradas com ncolunas e linhas contendo os primeiros inteiros positivos n^2(isto é, nao quadrado), onde né ímpar. Os elementos das matrizes estão dispostos de tal modo que os números inteiros 1através n^2são colocados sequencialmente num sentido anti-horário em espiral a partir do centro e inicialmente mover-se para a esquerda. Chame essas matrizesM(n)
Pois n=1isso simplesmente fornece a matriz de um elemento M(1)=[[1]].
M(3) é a matriz
9 8 7
2 1 6
3 4 5
M(5) é a matriz
25 24 23 22 21
10 9 8 7 20
11 2 1 6 19
12 3 4 5 18
13 14 15 16 17
e M(7)é a matriz
49 48 47 46 45 44 43
26 25 24 23 22 21 42
27 10 9 8 7 20 41
28 11 2 1 6 19 40
29 12 3 4 5 18 39
30 13 14 15 16 17 38
31 32 33 34 35 36 37
Agora considere achatar essa matriz em uma lista / matriz concatenando suas linhas começando do topo e descendo. Ligue para essas listas L(n). L(3), L(5)e L(7)são representados abaixo, com seus elementos delimitados por espaços.
9 8 7 2 1 6 3 4 5 (n=3)
25 24 23 22 21 10 9 8 7 20 11 2 1 6 19 12 3 4 5 18 13 14 15 16 17 (n=5)
49 48 47 46 45 44 43 26 25 24 23 22 21 42 27 10 9 8 7 20 41 28 11 2 1 6 19 40 29 12 3 4 5 18 39 30 13 14 15 16 17 38 31 32 33 34 35 36 37 (n=7)
Podemos encontrar o índice i(n)de L(n)em uma lista lexicograficamente classificada de permutações de L(n). Em Jelly, o Œ¿átomo fornece esse índice para a lista em que atua.
Desafio
Seu desafio é pegar um número inteiro ímpar positivo ncomo entrada e gerar o índice i(n).
Os primeiros valores são
n i(n)
-------
1 1
3 362299
5 15511208759089364438087641
7 608281864033718930841258106553056047013696596030153750700912081
Note que i(n)~ = (n^2)!. Isso não está no OEIS.
Esse é o código golf por idioma, portanto, faça isso no menor número de bytes possível.