2010-07-01 11 views
6

seguito è dal sito di pitone, circapitone di random.shuffle

random.shuffle(x[, random])

Mescolate la sequenza x a posto. L'argomento opzionale random è una funzione di argomento 0 che restituisce un float casuale in [0.0, 1.0); per impostazione predefinita, questa è la funzione random().

Si noti che anche per dimensioni piuttosto ridotte len(x), il numero totale di permutazioni di x è maggiore del periodo di maggior parte dei generatori di numeri casuali; questo implica che la maggior parte delle permutazioni di una lunga sequenza non può mai essere generata.

Se voglio ripetere ottenendo una permutazione casuale di ['a'..'k'], sembra che lo shuffle NON mi dia la casualità. La mia comprensione è giusta?

Grazie!

+2

possibile duplicato di [Lunghezza massima dell'elenco in Shuffle con Python random.shuffle?] (Http://stackoverflow.com/questions/3062741/maximal-length-of-list-to-shuffle-with-python-random -shuffle) –

+0

grazie Chris e SilentGhost per la spiegazione rapida e dettagliata! –

risposta

6

Per una sequenza di lunghezza 11, ce ne sono 11! o 39.916.800 (~ 2 25.3) possibili permutazioni. Per il Mersienne Twister (algoritmo casuale di Python) il periodo è 2 - 1. In altre parole, starai bene.