gpt4 book ai didi

python - python 随机数生成中的意外行为

转载 作者:太空狗 更新时间:2023-10-30 02:50:03 26 4
gpt4 key购买 nike

我有以下代码:

import random

rand1 = random.Random()
rand2 = random.Random()

rand1.seed(0)
rand2.seed(0)

rand1.jumpahead(1)
rand2.jumpahead(2)

x = [rand1.random() for _ in range(0,5)]
y = [rand2.random() for _ in range(0,5)]

根据 jumpahead() 函数的文档,我预计 xy 是(伪)独立序列。但是我得到的输出是:

x: [0.038378463064751012, 0.79353887395667977, 0.13619161852307016, 0.82978789012683285, 0.44296031215986331]

y: [0.98374801970498793, 0.79353887395667977, 0.13619161852307016, 0.82978789012683285, 0.44296031215986331]

如果您注意到,第 2 到第 5 个数字是相同的。每次我运行代码时都会发生这种情况。

我是不是漏掉了什么?

最佳答案

rand1.seed(0)
rand2.seed(0)

你用相同的值初始化它们,所以你得到相同的(非)随机性。使用一些像当前 unix 时间戳这样的值来播种它,你会得到更好的值。但请注意,如果您同时使用当前时间初始化两个 RNG,您当然会从它们中获得相同的“随机”值。

更新:刚刚注意到 jumpahead() 内容:看看 How should I use random.jumpahead in Python - 它似乎回答了你的问题。

关于python - python 随机数生成中的意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5112578/

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