python random.shuffle 的随机性
以下内容来自Python官网,讲的是
random.shuffle(x[, random])
这个函数会把序列
x
进行原地打乱,也就是说它会直接改变x
的顺序。可选的参数random
是一个不带参数的函数,它会返回一个在[0.0, 1.0)
范围内的随机小数;默认情况下,这个函数就是random()
。需要注意的是,对于即使是比较小的
len(x)
,x
的所有可能排列组合的总数都比大多数随机数生成器的周期还要大;这意味着对于一个较长的序列,大部分的排列组合是无法生成的。
如果我想多次获取 ['a'..'k']
的随机排列,似乎使用 shuffle 并不能保证每次都得到不同的随机结果。我这样理解对吗?
谢谢!