ゼリー、長さ17(安全)
[^/P-`mvÇ-ıḃ-ṫ€]*
Python正規表現。
結び目を締めて、これはいくつかのより有用なものを禁止します、あなたの援助のためにここに禁止されたバイトがあります:
/PQRSTUVWXYZ[\]^_`mvÇÐÑ×ØÞßæçðñ÷øþĊċĖėĠġİıḃḄḅḊḋḌḍḞḟḢḣḤḥḲḳḶḷṀṁṂṃṄṅṆṇṖṗṘṙṚṛṠṡṢṣṪṫ€
それらの3分の1以下!
4
鉱山出力の入力の場合:
1 2 3 4
8 7 6 5
9 10 11 12
16 15 14 13
...リストのリストをでグリッドとしてフォーマットしたためG
です。
解決策:
’:2o1
Ḃ¬aẋ@0
’r0;0ẋ$ẋ1Ŀ¬0¦;2ĿÆ¡œ?⁸²¤s⁸G
オンラインでお試しください!/ regex101
ここでの主なトリックは、n 2までの自然数の順列の辞書式にソートされたリストにインデックスを付け(œ?
長さn 2!のリストの作成を回避するために使用)、結果を長さnのチャンクに分割することです。前述のインデックスは、「非スライス」スネークが要素を所定の方法で並べ替えることによって作成されるため、定式化された階乗数体系でその表現を形成することで見つかります(これはで簡単に数値に変換できますÆ¡
)。
私が提示するソリューションはĿ
、以前のリンクをモナド(Ñ
およびÇ
)として参照するために使用しますが、$
代わりにこれらのヘルパー関数を「インライン化」するために複数の行を使用することもできます。また、使用してr
いるためḶ
とR
禁止されています。
’:2o1 - Link 1, periodic repetitions in the factorial base representation: n
’ - decrement n
:2 - integer divide by 2
o1 - or 1 (keep one period in the cases n=1 and n=2)
Ḃ¬aẋ@0 - Link 2, n zeros if n is even, else an empty list: n
Ḃ - mod 2
¬ - not
ẋ@0 - 0 repeated n times
a - and
’r0;0ẋ$ẋ1Ŀ¬0¦;2ĿÆ¡œ?⁸²¤s⁸G - Main link: n e.g. 6
’r0 - inclusive range(n-1, 0) [5,4,3,2,1,0]
0ẋ$ - 0 repeated n times [0,0,0,0,0,0]
; - concatenate (makes one "period") [5,4,3,2,1,0,0,0,0,0,0,0]
1Ŀ - call link 1 as a monad 2
ẋ - repeat list [5,4,3,2,1,0,0,0,0,0,0,0,5,4,3,2,1,0,0,0,0,0,0,0]
0¦ - apply to index 0 (rightmost index):
¬ - not (make the last 0 a 1) [5,4,3,2,1,0,0,0,0,0,0,0,5,4,3,2,1,0,0,0,0,0,0,1]
2Ŀ - call link 2 as a monad [0,0,0,0,0,0]
; - concatenate [5,4,3,2,1,0,0,0,0,0,0,0,5,4,3,2,1,0,0,0,0,0,0,1,0,0,0,0,0,0]
Æ¡ - convert from factorial base 45461852049628918679695458739920
¤ - nilad followed by link(s) as a nilad
⁸ - left argument, n 6
² - square 36
œ? - lexicographical permutation lookup [1,2,3,4,5,6,12,11,10,9,8,7,13,14,15,16,17,18,24,23,22,21,20,19,25,26,27,28,29,30,36,35,34,33,32,31]
s⁸ - split into chunks of length n [[1,2,3,4,5,6],[12,11,10,9,8,7],[13,14,15,16,17,18],[24,23,22,21,20,19],[25,26,27,28,29,30],[36,35,34,33,32,31]]
G - format as a grid
.
.