gpt4 book ai didi

random - 有没有办法获取随机数生成器的状态?

转载 作者:行者123 更新时间:2023-12-04 18:58:52 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Retrieve RNG seed in julia

(6 个回答)


4年前关闭。




假设我用 srand(123) 播种 123 ,然后运行 ​​rand() X次。稍后,我希望能够重新启动 Julia 并播种一个数字(或状态),这样当我运行 rand() 时我再次得到如果我有种子 123 并运行 rand() 会产生的数字X+1 次。有什么办法可以做到这一点,或者我真的必须运行 rand() X次获得我想要的状态?

最佳答案

如果 Retrieve RNG seed in julia 中提供了带有自定义随机数生成器的解决方案对你来说是不可行的,我能想到的最好的方法是复制全局随机数生成器的整个结构:

function reset_global_rng(rng_state)
Base.Random.GLOBAL_RNG.seed = rng_state.seed
Base.Random.GLOBAL_RNG.state = rng_state.state
Base.Random.GLOBAL_RNG.vals = rng_state.vals
Base.Random.GLOBAL_RNG.idx = rng_state.idx
end

rs = deepcopy(Base.Random.GLOBAL_RNG)
println(rand(5))
# [0.301558,0.602108,0.220952,0.0338732,0.553414]
reset_global_rng(rs)
println(rand(5))
# [0.301558,0.602108,0.220952,0.0338732,0.553414]

虽然我不是 100% 确定它是如何与 dsfmt_gv_srand() 互动的在random.jl中。

关于random - 有没有办法获取随机数生成器的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43197489/

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