问题
Following is from python website, about
random.shuffle(x[, random])Shuffle the sequence
xin 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 ofxis 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!
回答1:
You don't have anything to worry about. While under len(x) is under 2000, random.shuffle should work just fine.
回答2:
For a sequence of length 11, there are 11! or 39,916,800 (~ 225.3) possible permutations. For the Mersienne Twister (Python's random algorithm) the period is 219937 − 1. In other words, you'll be fine.
来源:https://stackoverflow.com/questions/3160214/python-random-shuffles-randomness