2010-07-01 14 views
6

A continuación se presenta desde el sitio web de Python, sobrepitón de random.shuffle

random.shuffle(x[, random])

aleatoria la secuencia x en su lugar. El argumento opcional random es una función de argumento 0 que devuelve un flotante aleatorio en [0.0, 1.0); por defecto, esta es la función random().

Tenga en cuenta que incluso bastante pequeño len(x), el número total de permutaciones de x es mayor que el período de la mayoría de los generadores de números aleatorios; esto implica que la mayoría de las permutaciones de una secuencia larga nunca se pueden generar.

Si quiero repetir conseguir una permutación aleatoria de ['a'..'k'], parece barajar no me va a dar a la aleatoriedad. ¿Es mi entendimiento correcto?

¡Gracias!

+2

posible duplicado de [Longitud máxima de lista para mezclar con Python random.shuffle?] (Http://stackoverflow.com/questions/3062741/maximal-length-of-list-to-shuffle-with-python-random -shuffle) –

+0

gracias Chris y SilentGhost por la explicación rápida y detallada! –

Respuesta

6

¡Para una secuencia de longitud 11, hay 11! o 39,916,800 (~ 2 25.3) posibles permutaciones. Para el Mersienne Twister (algoritmo aleatorio de Python) el período es 2 - 1. En otras palabras, estarás bien.