小编Jeg*_*Jeg的帖子

使用类似种子时,为什么初始随机数相似?

我发现了使用Java的Random类生成随机数的奇怪之处.基本上,如果使用近似种子创建多个Random对象(例如介于1和1000之间),则每个生成器生成的第一个值几乎相同,但下一个值看起来很好(我没有进一步搜索).

以下是两个第一个生成的双打,种子从0到9:

  • 0 0.730967787376657 0.24053641567148587
  • 1 0.7308781907032909 0.41008081149220166
  • 2 0.7311469360199058 0.9014476240300544
  • 3 0.731057369148862 0.07099203475193139
  • 4 0.7306094602878371 0.9187140138555101
  • 5 0.730519863614471 0.08825840967622589
  • 6 0.7307886238322471 0.5796252073129174
  • 7 0.7306990420600421 0.7491696031336331
  • 8 0.7302511331990172 0.5968915822372118
  • 9 0.7301615514268123 0.7664359929590888

从991到1000:

  • 991 0.7142160704801332 0.9453385235522973
  • 992 0.7109015598097105 0.21848118381994108
  • 993 0.7108119780375055 0.38802559454181795
  • 994 0.7110807233541204 0.8793923921785096
  • 995 0.7109911564830766 0.048936787999225295
  • 996 0.7105432327208906 0.896658767102804
  • 997 0.7104536509486856 0.0662031629235198
  • 998 0.7107223962653005 0.5575699754613725
  • 999 0.7106328293942568 0.7271143712820883
  • 1000 0.7101849056320707 0.574836350385667

这是一个图,显示了种子从0到100,000生成的第一个值.

基于种子生成的第一个随机双精度:

图片

我搜索了有关这方面的信息,但我没有看到任何涉及这个确切问题的信息.我知道LCGs算法存在很多问题,但我不知道这个问题,我想知道这是否是一个已知问题.

而且,你知道这个问题是仅针对第一个值(或前几个值),还是更常见且使用密切种子应该避免?

谢谢.

java random

27
推荐指数
1
解决办法
1860
查看次数

标签 统计

java ×1

random ×1