6

以下来自python网站,关于

random.shuffle(x[, random])

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

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

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

谢谢!

4

2 回答 2

6

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

于 2010-07-01T17:41:29.513 回答
6

你没有什么可担心的。虽然低于len(x)2000,random.shuffle但应该可以正常工作。

于 2010-07-01T17:35:13.077 回答