果冻,长17(安全)
[^/P-`mvÇ-ıḃ-ṫ€]*
Python正则表达式。
收紧结,这会禁止一些更有用的东西,为您提供帮助,这是被禁止的字节:
/PQRSTUVWXYZ[\]^_`mvÇÐÑ×ØÞßæçðñ÷øþĊċĖėĠġİıḃḄḅḊḋḌḍḞḟḢḣḤḥḲḳḶḷṀṁṂṃṄṅṆṇṖṗṘṙṚṛṠṡṢṣṪṫ€
不到其中的三分之一!
输入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的块。通过在阶乘数系统中形成它的表示,可以找到上述索引,这是公式化的,因为“未切片的”蛇是通过以规定的方式对元素进行排列而创建的(可以使用轻松地将其转换为数字Æ¡
)。
我提出的解决方案使用Ŀ
monad来引用以前的链接(替换Ñ
和Ç
),但是$
可以采用连续多个来“内联”这些辅助函数。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
.
。