如何在scala微风中初始化特定的随机种子,比如高斯分布?
如何使用scala breeze中的特定种子强制随机数生成器(如果可能的话),也就是说下面的scala代码总是生成相同的序列如何在scala微风中初始化特定的随机种子,比如高斯分布?,scala,scala-breeze,Scala,Scala Breeze,如何使用scala breeze中的特定种子强制随机数生成器(如果可能的话),也就是说下面的scala代码总是生成相同的序列seq import breeze.stats.distributions._ val g = new Gaussian(0, 1) val seq = gau.sample(3) 我正在使用scala构建monte carlo模拟器,希望模拟结果是可重复的(通过对特定随机种子的参数化)。创建隐式随机基,并将其执行到创建随机生成器的
seq
import breeze.stats.distributions._
val g = new Gaussian(0, 1)
val seq = gau.sample(3)
我正在使用scala构建monte carlo模拟器,希望模拟结果是可重复的(通过对特定随机种子的参数化)。创建隐式随机基,并将其执行到创建随机生成器的任何位置。我可能应该为此改进API,但类似于:
implicit val randBasis: RandBasis = new RandBasis(new ThreadLocalRandomGenerator(new MersenneTwister(seed)))
(该线程可能无法实现您想要的功能。每个线程都获得相同的种子。您可能希望使用基于某个基本种子和线程标识的(稳定)指示符生成种子的工具。)感谢Dave提供的详细信息,特别是我接下来要讨论的单个线程上的注释部分。如果有人想要控制blackbox breeze函数中下游发生的任何随机数生成,这似乎没有帮助。例如,考虑编写一个单元测试,每次只需设置一个随机种子、一些玩具数据和调用优化器函数,就可以复制完全相同的优化器步骤序列。如果测试在调用优化器函数的级别上运行,就像它们是黑匣子一样,那么就没有选项“穿过”这些函数的内部以及它们自己可能维护的任何随机结构。