我目前正在研究 Java 中的遗传编程算法。对于我的实验,我尝试了几种设置组合并了解所需的时间,我多次运行每个设置组合,以便我可以取平均值等。
但是,即使有时我只启动一个具有恒定值的 Random rng 实例作为种子(不幸的是,并非总是如此),但对于使用相同设置的运行,我会得到不同的结果。
所以,我的问题是,除了在我自己的代码中显式创建新的随机数生成器之外,其他随机性来源可能是什么?
会不会是集合、散列等工作的方式???我怎样才能使这些工作可预测?
我已经检查了对 Collections.shuffle 的调用,并用我的单个 Random 实例将它们作为种子......
任何建议都非常感谢。
一些评论建议发布代码。但是,我不是在寻求具体的反馈,但我更感兴趣的是一般来说(不希望的)随机性来源可能是什么。我忘了提到的一个当然是使用多线程。
当然,我强制让我的代码运行单线程,以防止来自该源的任何随机性