在java中使用更长的种子生成随机数

时间:2012-07-05 02:16:41

标签: java random

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

1 个答案:

答案 0 :(得分: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