J, 171 байт
(+:>.+:^^*_){.".(':',~(+:+:>.^*_){(*:>.^*_)!:(+:<.^+:*_)''),',',(":(>:*:+:+:+:*_),(<.^<:^<:^*_),<:*:<.^+:*_),'+/',('.',~(+:<.+:^*_){(*:>.^*_)!:(+:<.^+:*_)''),":+:<.*:>:^*_
Ой ... мой мозг болит ... Попробуй онлайн!
Вот так вы можете увидеть все это одной строкой (хотя она не будет работать с переносами строк).
(+:>.+:^^*_){.".(':',~(+:+:>.^*_){(*:>.^*_)!:(+:<.^+:*_)''),',',(":(>:*:+:+:+:*_),(<.^<:^<:^*
_),<:*:<.^+:*_),'+/',('.',~(+:<.+:^*_){(*:>.^*_)!:(+:<.^+:*_)''),":+:<.*:>:^*_
Гарантируется работа только с J-версией j805/j64/linux/release/commercial/www.jsoftware.com/2016-12-11T08:02:52в указанном порядке. (Только первые 12 символов имеют значение.)
объяснение
Большая часть программы посвящена постоянному поколению. С заменой этих констант на их значения программа выглядит так:
(62){.".(':',~(12){(9)!:(14)''),',',(":(65),(97),48),'+/',('.',~(10){(9)!:(14)''),":26
С некоторыми скобками удалены, а некоторые числа стали лучше:
62{.".(':',~12{9!:14''),',',(":65 97 48),'+/',('.',~10{9!:14''),":26
Это состоит из группы ,и ,~s, которые добавляют и дополняют аргументы. Вот отдельные значения:
":26
('.',~10{9!:14'')
'+/'
(":65 97 48)
','
(':',~12{9!:14'')
1это 26как строка.
9!:14'' генерирует следующую строку в TIO:
j805/j64/linux/release/commercial/www.jsoftware.com/2016-12-11T08:02:52
с 2, мы получаем 10th-й символ ( iиз linux) и добавляем в .его конец, получая i..
3и 5говорят сами за себя.
4список чисел 65 97 48в виде строки
6аналогично 2, за исключением того, что это 12символ th ( ufrom linux) и добавляет :в конец, уступая u:.
Это все вместе дает u:,65 97 48+/i.26. ".оценивает это, давая нам:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789:;<=>?@ABCDEFGHI
(Примечание: +/это табличное дополнение.)
Затем, с помощью 62{., мы берем первые 62символы из этого, давая нам ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.