【发布时间】:2011-05-10 05:27:26
【问题描述】:
我有点不确定这个问题的正确论坛。它介于理论补偿之间。科学/数学和编程。
我使用 Mersenne-Twister 生成伪随机数。现在,从给定的种子开始,我想跳到序列中的第 n 个数字。
我看过这个:http://www-personal.umich.edu/~wagnerr/MersenneTwister.html,一个方案可能如下:
假设,我只需要来自特定种子 s 的完整随机序列中的前 N 个数字。
我将序列拆分为 p 个子序列,遍历所有 N 个数字,并将随机数生成器的状态向量保存在每个子序列的开头。
现在要达到第 n 个数字,我会看到 n 落在第 k 个子序列中,我将加载状态向量对于这个子序列并生成 m 个连续的随机数,其中第 k 个子序列中的第 m 个数字与完整序列中的第 n 个数字相同 ( n = m + (k-1) * N /p)。
但是状态向量是 624 x 4 字节长!我想知道实际上是否可以跳转到 mersenne-twister 生成的序列中的任意元素。
【问题讨论】:
标签: algorithm random mersenne-twister