python random.shuffle的随机性

时间:2010-07-01 17:30:43

标签: python random shuffle

以下是来自python网站,关于

  

random.shuffle(x[, random])

     

将序列x拖放到位。可选参数random是一个0参数函数,在[0.0, 1.0)中返回一个随机浮点数;默认情况下,这是函数random()

     

请注意,对于相当小的len(x)x的排列总数大于大多数随机数生成器的周期;这意味着永远不会产生长序列的大多数排列。

如果我想重复['a'..'k']的随机排列,似乎随机播放不会给我随机性。我的理解是对的吗?

谢谢!

2 个答案:

答案 0 :(得分:6)

You don't have anything to worry about. len(x)在{2000}以下,random.shuffle应该可以正常使用。

答案 1 :(得分:6)

对于长度为11的序列,有11个!或39,916,800(~2 25.3 )可能的排列。对于Mersienne Twister(Python的随机算法),期间为2 19937 - 1.换句话说,你会没事的。