1
3
你不应该用那个函数。没有证据表明它能在梅森捻线机上工作。事实上,它是 removed from Python 3 for that reason . 有关在并行环境中生成伪随机数的详细信息,请参见 this article from David Hill . |
2
5
大致正确。每根线都有自己的
所有这些种子的种子价值相同。使用常量进行测试,在“为记录运行”时使用/dev/random。
编辑
. 在python外部和较旧的实现中,使用
你不能就这么做
是的,跳跃前进确实“扰乱”了国家。回想一下,对于一个给定的种子,你会得到一个——长——但是 固定的 伪随机数序列。你在这个序列中领先。要通过随机性测试,必须从中获取所有值 一 序列。
编辑
. 从前,跳跃前进(1)是有限的。现在,向前跳跃(1)真的会造成更大的混乱。然而,加扰是确定的。你不能就这么做
如果你有多个不同种子的生成器,你违反了“一个种子有一个序列”的假设,你的数字就不会像从一个序列得到的那样随机。 如果你只跳1,你可能会得到并行序列,这可能是相似的。[这种相似性可能无法察觉; 理论上 ,有相似之处。】 当你跳到50000,你保证你遵循1-序列-1-种子前提。你还保证在两个实验中不会有相邻的数字序列。 最后,你也有重复性。对于给定的种子,结果是一致的。 同样的跳跃:不好。
|
3
3
(
|
4
0
每个 random module docs 在python.org: “您可以实例化自己的随机实例,以获取不共享状态的生成器。” 正如你所提到的,还有一个相关的跳转注意事项。但那里的保证有点模糊。如果对操作系统随机性的调用并没有昂贵到支配你的运行时间,我会跳过所有的微妙之处,做一些类似的事情:
如果num_expts是~1000,那么你的种子中不太可能有任何碰撞(birthday paradox说,在碰撞概率达到50%之前,你需要大约65000个实验)。如果这对你来说还不够好,或者如果实验的次数是100k而不是1k,那么我认为这是合理的
请注意,我认为仅仅使种子更长是行不通的(例如os.urandom(8)),因为随机文档声明种子必须是散列的,所以在32位平台上,您最多只能在种子中获得32位(4字节)的有用熵。 这个问题激起了我的好奇心,所以我去看了看 code 实现随机模块。我绝对不是一个prng专家,但它确实看起来稍微不同的n值在跨接(n)将导致明显不同的随机实例状态。(总是害怕反驳亚历克斯·马泰利,但是密码 做 随机状态乱序时使用n的值)。 |
ecology · 基于R中随机生成数集的子集列 2 年前 |
Alan Jones · 使用random从列表创建动态列表 2 年前 |
breking bed · 单击按钮时如何随机选择唯一编号 2 年前 |
Carrot Man · 如何让熊猫数据框随机填充1和0? 2 年前 |
Justin Arnold · 范围内的随机数不是随机数 2 年前 |
Menna Magdy · 如何使用非模型字段进行过滤? 2 年前 |