環境
n
最初のn^2
(つまりn
2乗された)正の整数を含む列と行をもつ正方行列を考えます。ここで、n
が奇数。行列の要素は、整数1
〜n^2
が、中心から始まり、最初は左に移動する反時計回りのらせん状に順次配置されるように配置されます。これらの行列を呼び出すM(n)
ために n=1
、この単純に1つの要素行列を与えますM(1)=[[1]]
。
M(3)
行列です
9 8 7
2 1 6
3 4 5
M(5)
行列です
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
そして M(7)
行列です
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
次に、行を上から連結して下に移動することにより、この行列をリスト/配列にフラット化することを検討してください。これらのリストを呼び出しますL(n)
。L(3)
、L(5)
およびL(7)
要素をスペースで区切って以下に示します。
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)
の順列の辞書式にソートされたリストでのインデックスi(n)
を見つけることができますL(n)
L(n)
。Jellyでは、Œ¿
アトムは作用するリストにこのインデックスを提供します。
チャレンジ
あなたの課題は、正の奇数の整数n
を入力として受け取り、インデックスを出力することですi(n)
です。
最初のいくつかの値は
n i(n)
-------
1 1
3 362299
5 15511208759089364438087641
7 608281864033718930841258106553056047013696596030153750700912081
ご了承ください i(n)
〜=である(n^2)!
。これはOEISにはありません。
これは言語ごとのコードゴルフなので、可能な限り少ないバイト数でこれを実現します。