Considera il seguente elenco:
expected = [
'A',
'B',
'AB',
'C',
'D',
'CD',
'ABCD',
'E',
'F',
'EF',
'G',
'H',
'GH',
'EFGH',
'ABCDEFGH',
'I',
'J',
'IJ',
'K',
'L',
'KL',
'IJKL',
'M',
'N',
'MN',
'O',
'P',
'OP',
'MNOP',
'IJKLMNOP',
'ABCDEFGHIJKLMNOP',
...
]
Ecco un modo per vederlo: stai imparando a scrivere caratteri cinesi e vuoi imparare pezzi sempre più grandi di loro, provandoli mentre procedi. Inizi con A, poi vai con B, quindi c'è già una sequenza che è una coppia di due, quindi la combini. Quindi vai con C e D, creane un'altra coppia, esercitati. Quindi provi: ABCD. Quindi lo stesso vale con E fino a H, quindi prova: ABCDEFGH. L'elenco è infinito.
L'obiettivo è generare e stampare un n-esimo elemento di questo elenco, con indici che salgono da zero. Supponi che dopo 'Z', ottieni di nuovo 'A'.
Il criterio vincente è la lunghezza del codice sorgente.
x,y,z,a,b...
).
BC
oCDEF
? Cosa decide cosa concateniamo e cosa no? Come è infinito se ricomincia daA
capo dopoZ
(vuoi dire ad un certo punto dopoABCDEFGHIJKLMNOPQRSTUVWXZ
che abbiamoABCDEFGHIJKLMNOPQRSTUVWXZAB
o qualcosa del genere?)