Bối cảnh
Xem xét các ma trận vuông với n
các cột và các hàng chứa các số nguyên dương đầu tiên n^2
(tức là n
bình phương), trong đó n
là số lẻ. Các phần tử của ma trận được sắp xếp sao cho các số nguyên 1
đi qua n^2
được đặt tuần tự theo hình xoắn ốc ngược chiều kim đồng hồ bắt đầu từ tâm và ban đầu di chuyển sang trái. Gọi các ma trận nàyM(n)
Đối với n=1
điều này chỉ đơn giản là cung cấp cho ma trận một yếu tố M(1)=[[1]]
.
M(3)
là ma trận
9 8 7
2 1 6
3 4 5
M(5)
là ma trận
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
và M(7)
là ma trận
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
Bây giờ hãy xem xét làm phẳng ma trận này thành một danh sách / mảng bằng cách ghép các hàng của nó bắt đầu từ trên xuống và di chuyển xuống. Gọi những danh sách này L(n)
. L(3)
, L(5)
Và L(7)
được thể hiện dưới đây, với các yếu tố của họ giới hạn bởi không gian.
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)
Chúng ta có thể tìm thấy những chỉ số i(n)
của L(n)
trong một danh sách thứ tự từ điển được sắp xếp hoán vị của L(n)
. Trong Jelly, Œ¿
nguyên tử đưa ra chỉ số này cho danh sách mà nó hoạt động.
Thử thách
Thách thức của bạn là lấy một số nguyên lẻ dương n
làm đầu vào và xuất chỉ mục i(n)
.
Một vài giá trị đầu tiên là
n i(n)
-------
1 1
3 362299
5 15511208759089364438087641
7 608281864033718930841258106553056047013696596030153750700912081
Lưu ý rằng i(n)
~ = (n^2)!
. Đây không phải là trên OEIS.
Đây là mã golf cho mỗi ngôn ngữ, vì vậy hãy đạt được điều này trong vài byte nhất có thể.