随机数生成器函数 ran2 数学配方

问题描述 投票:1回答:1

如果我们用一个负整数[种子]开始调用函数 ran2,它将产生一系列随机数。如果使用相同的种子,序列可以完全重新生成。

现在我的问题是,有没有一种方法可以让我们直接进入序列中的某个点,然后从那个点开始继续?例如,如果某个种子的随机数是0.35,0.32,0.44,0.32,0.66,0.32,0.45。

如果我们知道这个种子产生了这个序列,有没有办法让函数返回0.66,然后从这个点开始继续?

我想使用它的方式是在模拟中。如果我的模拟在某一点结束,我需要重新启动它,我应该继续使用相同的随机数序列,谢谢。

math random generator simulation
1个回答
2
投票

我同意 @dirkgently 的上述评论。虽然我不熟悉 ran2 具体来说,基于 此示例代码 看起来有一些有状态的部件(idum, idum2, iyiv),可以封装出来并存储。当你 "暂停 "你的模拟时,你可以保存这个状态,并把它写回到 ran2 引擎,下次启动时。恢复状态信息应该会让机器回到它离开的地方,并且随机序列可以恢复。这可能需要稍微修改一下 ran2 代码本身,但应该不是一个很难的变化折叠。

© www.soinside.com 2019 - 2024. All rights reserved.