1

所以我知道我可以调用random(long val)Java 来生成一个种子为 2^63 的随机数。如何做得更好(更大的种子价值)?我假设这必须是一个手动课程才能完成这样的成就,但我对如何开始有点迷茫。

4

1 回答 1

0

增加种子材料量的两种方法是:

  • 使用设计用于接受大量种子材料的 RNG。
  • 结合两个不同的RNG。

首先,看看 George Marsaglia 的一些方法,它们使用数组来保存它们的状态。在http://programmingpraxis.com/2010/10/05/george-marsaglias-random-number-generators/有一个示例(请注意评论中的更正:

#define SHR3  (jsr^=(jsr<>17), jsr^=(jsr<<5))

数组 t[256] 是大部分种子所在的位置。

对于第二个,看看 Pierre L'Ecuyer 的工作,例如,Efficient and Portable Combined Random Number Generators

于 2012-07-06T10:46:24.953 回答