Diciamo che ho una sequenza di elementi di lunghezza sconosciuta, n. Voglio randomizzare l'ordine di questa sequenza senza dover passare attraverso l'intera sequenza. Ci sono degli algoritmi che possono farlo?
Esempio:
Ho 10 elementi nella mia sequenza: A B C D E F G H I J
(sebbene non sappia che ho 10). Alla fine della mia randomizzazione sarebbe finito come E G F B A I C D J H
.
Se volessi solo conoscere i primi 3 elementi casuali, otterrei E G F
, e dato che G è l'elemento più lontano nella sequenza originale, non avrei mai dovuto leggere la sequenza oltre G.
Il mio algoritmo, in qualche modo, guarderebbe A e realizzerebbe che appartiene in modo casuale ai primi 3 elementi richiesti, quindi guarderebbe B e realizzerebbe lo stesso, ..., guarderebbe E e realizzerebbe che ha bisogno essere casualmente il primo elemento quindi lo aggiunge a un buffer di ritorno come elemento 1, quindi F casualmente dovrebbe essere il terzo elemento, quindi lo aggiunge a un buffer di ritorno come elemento 3, quindi colpisce G e lo aggiunge al buffer di ritorno come elemento 2 e completa. Non guarda mai dove H, I o J dovrebbero andare.