src*_*nas 5 python random algorithm montecarlo python-3.x
我想要很长一段时间(比如10000)将一个很长的序列(比如它有超过10000个元素)洗牌.阅读Python Random文档时,我发现了以下内容:
注意,即使对于小len(x),x的排列总数也可以快速增长,大于大多数随机数生成器的周期.这意味着永远不会产生长序列的大多数排列.例如,长度为2080的序列是可以在Mersenne Twister随机数生成器的周期内拟合的最大序列
我有两组(可能更多),每组都有很多值.我想要随机播放的序列是所有可用值的列表,无论该组如何.我担心的是这个说明意味着我需要的shuffle可能不是由random.shuffle()函数提供的.
我考虑过一些变通方法:
我的替代品会有帮助吗?
非常感谢!
嗯,10,000! ~= 10^36,000这是很多可能的排列。您能做的最好的事情就是深入研究您的操作系统或硬件如何累积“真正随机”的位。然后,您可以等待大约 120,000 位您可以接受的随机性,然后使用在给定随机 n 的情况下生成输入列表的第 n 个排列的算法。
| 归档时间: |
|
| 查看次数: |
220 次 |
| 最近记录: |