“×Ɗ¡‘Œ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.