Kontext
Betrachten Sie quadratische Matrizen mit nSpalten und Zeilen, die die ersten n^2(dh nquadratischen) positiven ganzen Zahlen enthalten, wobei nungerade ist. Die Elemente der Matrizen sind so angeordnet, dass die 1durchgehenden Ganzzahlen n^2nacheinander in einer Spirale gegen den Uhrzeigersinn angeordnet sind, beginnend in der Mitte und anfänglich nach links bewegend. Nennen Sie diese MatrizenM(n)
Dafür n=1gibt es einfach die Ein-Element-Matrix M(1)=[[1]].
M(3) ist die Matrix
9 8 7
2 1 6
3 4 5
M(5) ist die Matrix
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
und M(7)ist die Matrix
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
Ziehen Sie nun in Betracht, diese Matrix zu einer Liste / einem Array zu reduzieren, indem Sie ihre Zeilen von oben nach unten verketten. Rufen Sie diese Listen auf L(n). L(3), L(5)Und L(7)sind im folgenden dargestellt, wobei ihre Elemente durch Zwischenräume getrennt.
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)
Wir können den Index i(n)von L(n)in einer lexikographisch sortierten Liste von Permutationen von finden L(n). In Jelly gibt das Œ¿Atom diesen Index für die Liste an, auf die es wirkt.
Herausforderung
Ihre Herausforderung besteht darin, eine positive ungerade Ganzzahl nals Eingabe und Ausgabe des Index zu verwenden i(n).
Die ersten Werte sind
n i(n)
-------
1 1
3 362299
5 15511208759089364438087641
7 608281864033718930841258106553056047013696596030153750700912081
Beachten Sie, dass i(n)~ = (n^2)!. Dies ist nicht auf OEIS.
Dies ist Code Golf pro Sprache, also erreichen Sie dies in möglichst wenigen Bytes.