Following is from python website, about
random.shuffle(x[, random])
Shuffle the sequence
x
in place. The optional argument random is a 0-argument function returning a random float in[0.0, 1.0)
; by default, this is the functionrandom()
.Note that for even rather small
len(x)
, the total number of permutations ofx
is larger than the period of most random number generators; this implies that most permutations of a long sequence can never be generated.
If I want to repeat getting a random permutation of ['a'..'k']
, it seems shuffle will NOT give me the randomness. Is my understanding right?
Thank you!
You don't have anything to worry about. While under len(x)
is under 2000, random.shuffle
should work just fine.
For a sequence of length 11, there are 11! or 39,916,800 (~ 2 25.3 ) possible permutations. For the Mersienne Twister (Python's random algorithm) the period is 2 19937 − 1. In other words, you'll be fine.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.