gpt4 book ai didi

python - 这在 random.shuffle 的文档中意味着什么?

转载 作者:太空狗 更新时间:2023-10-29 22:16:06 26 4
gpt4 key购买 nike

http://docs.python.org/2/library/random.html#random.shuffle

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 function random().

Note that for even rather small len(x), the total number of permutations of x is larger than the period of most random number generators; this implies that most permutations of a long sequence can never be generated.

有人能给我解释一下最后一句话是什么意思吗?

听起来您可以或应该使用 shuffle 的列表大小可能有限制?

最佳答案

这意味着对于更长的列表,随机数生成器将开始 self 重复,因此给定列表的不同可能“洗牌”的数量不会是列表的排列数。

对于长度为 N 的列表,有 N!(N 阶乘)可能的排列列表顺序的方法,但是如果随机生成器在少于 N 之后开始重复自身!迭代,那么 random.shuffle() 函数将无法为该列表生成所有 N! 排列。

它仍然能够打乱列表,但即使你打乱列表无限次,它也不会为这样的列表生成所有可能的顺序。

默认的 random.random() 函数使用 Mersenne Twister 算法,其周期为 2**19937-1。这意味着您需要一个长度为 2081 的列表才能看到此行为发生。

关于python - 这在 random.shuffle 的文档中意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21284853/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com