“×Ɗ¡‘ŒP»Ṫ¦209ṗ€3Fd⁴ịØHs3ṢQY
Попробуйте онлайн!
Как это работает
“×Ɗ¡‘
дают кодовые точки персонажей между кавычки в желе в SBCS , которые 0x11 = 17 , 0x91 = 145 и 0х00 = 0 .
ŒP
строит powerset массива кодовых точек, давая
[[], [17], [145], [0], [17, 145], [17, 0], [145, 0], [17, 145, 0]]
Последние две записи соответствуют комбинациям, которые содержат как 80 , так и FF , поэтому мы должны отбросить их.
»Ṫ¦209
состоит из трех частей:
Ṫ
(tail) удаляет последний массив кодовых точек, т. е. [17, 145, 0] .
»209
берет максимум каждого целого числа в оставшейся части powerset и 0xD1 = 209 , заменяя их все на 209 .
¦
(разреженный) перебирает элементы оставшейся части powerset. Если соответствующий индекс найден в [17, 145, 0] , элемент заменяется на все 209 . Если нет, то он остается нетронутым.
¦
не является модульным, поэтому он изменяет только последний массив (индекс 0 ) в оставшейся части блока питания. Индексы 17 и 145 слишком велики и не имеют никакого эффекта.
Результат выглядит следующим образом.
[[], [17], [145], [0], [17, 145], [17, 0], [209, 209]]
ṗ€3
вычисляет третью декартову степень каждого массива, то есть массив всех трех наборов элементов каждого массива.
Fd⁴
выравнивает результат и вычисляет частное и остаток каждого целого числа, деленное на 16 .
ịØH
индексы (на основе 1) в "0123456789ABCDEF , поэтому 0x11 , 0x91 , 0x00 и 0xD1 отображаются в " 00 " , " 80 " , " FF " и " C0 " (соответственно).
s3ṢQ
разбивает пары символов на 3 кортежа, сортирует кортежи и дедуплицирует.
Наконец, Y
объединяются уникальные кортежи, разделенные переводом строк.
“0FC8”
как у нас есть00
,FF
,C0
и80
.