Konteks
Pertimbangkan matriks persegi dengan nkolom dan baris yang berisi bilangan bulat positif pertama n^2(yaitu nkuadrat), di mana nganjil. Elemen-elemen dari matriks disusun sedemikian rupa sehingga bilangan bulat 1melalui n^2ditempatkan secara berurutan dalam spiral berlawanan arah jarum jam mulai di tengah dan awalnya bergerak ke kiri. Sebut matriks iniM(n)
Untuk n=1ini cukup berikan satu elemen matriks M(1)=[[1]].
M(3) adalah matriks
9 8 7
2 1 6
3 4 5
M(5) adalah matriks
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
dan M(7)merupakan matriks
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
Sekarang pertimbangkan untuk meratakan matriks ini ke dalam daftar / larik dengan menggabungkan barisnya mulai dari atas dan bergerak ke bawah. Panggil daftar ini L(n). L(3), L(5)dan L(7)diwakili di bawah ini, dengan elemen-elemennya dibatasi oleh spasi.
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)
Kita dapat menemukan indeks i(n)dari L(n)dalam daftar leksikografi diurutkan permutasi dari L(n). Dalam Jelly, Œ¿atom memberikan indeks ini untuk daftar kerjanya.
Tantangan
Tantangan Anda adalah mengambil bilangan bulat ganjil positif nsebagai input dan output indeks i(n).
Beberapa nilai pertama adalah
n i(n)
-------
1 1
3 362299
5 15511208759089364438087641
7 608281864033718930841258106553056047013696596030153750700912081
Perhatikan bahwa i(n)~ = (n^2)!. Ini bukan pada OEIS.
Ini adalah kode golf per bahasa, jadi capai ini dalam byte sesedikit mungkin.