J, 171 byte
(+:>.+:^^*_){.".(':',~(+:+:>.^*_){(*:>.^*_)!:(+:<.^+:*_)''),',',(":(>:*:+:+:+:*_),(<.^<:^<:^*_),<:*:<.^+:*_),'+/',('.',~(+:<.+:^*_){(*:>.^*_)!:(+:<.^+:*_)''),":+:<.*:>:^*_
Ow ... mi fa male il cervello ... Provalo online!
Ecco perché puoi vederlo tutto su una riga (non funzionerà, tuttavia, con interruzioni di riga.)
(+:>.+:^^*_){.".(':',~(+:+:>.^*_){(*:>.^*_)!:(+:<.^+:*_)''),',',(":(>:*:+:+:+:*_),(<.^<:^<:^*
_),<:*:<.^+:*_),'+/',('.',~(+:<.+:^*_){(*:>.^*_)!:(+:<.^+:*_)''),":+:<.*:>:^*_
Garantito solo per funzionare con la versione J j805/j64/linux/release/commercial/www.jsoftware.com/2016-12-11T08:02:52
, in questo ordine. (Sono importanti solo i primi 12 caratteri.)
Spiegazione
Gran parte del programma è dedicato alla generazione costante. Con quelle costanti sostituite con i loro valori, il programma si presenta così:
(62){.".(':',~(12){(9)!:(14)''),',',(":(65),(97),48),'+/',('.',~(10){(9)!:(14)''),":26
Con alcune parentesi rimosse e alcuni numeri resi più belli:
62{.".(':',~12{9!:14''),',',(":65 97 48),'+/',('.',~10{9!:14''),":26
Questo è composto da un gruppo di ,
e ,~
, che accoda e antepone argomenti. Ecco i valori separati:
":26
('.',~10{9!:14'')
'+/'
(":65 97 48)
','
(':',~12{9!:14'')
1
è 26
come una stringa.
9!:14''
genera la seguente stringa su TIO:
j805/j64/linux/release/commercial/www.jsoftware.com/2016-12-11T08:02:52
con 2
, otteniamo il 10
carattere th ( i
da linux
) e aggiungiamo .
a alla fine di esso, cedendo i.
.
3
e 5
sono autoesplicativi.
4
è l'elenco di numeri 65 97 48
come stringa.
6
è simile a 2
, tranne che è il 12
th carattere ( u
da linux
) e aggiunge un :
alla fine, cedendo u:
.
Questo, tutti insieme, produce u:,65 97 48+/i.26
. ".
valuta questo dandoci:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789:;<=>?@ABCDEFGHI
(Nota: +/
è aggiunta tabulata.)
Quindi, con 62{.
, prendiamo i primi 62
personaggi da questo, dandoci ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
.