Java Random, небольшое изменение в семени вызывает лишь небольшое изменение в выходе

При создании генератора карт на Java я обнаружил довольно неприятную проблему с их генератором случайных чисел: когда два ГПСЧ имеют очень похожие семена (отличающиеся небольшими целыми числами), их первое выходное значение станет очень похожим!

Пример кода:

Random r = new Random();
long n = 100000; //Choose any number
r.setSeed(n);  
System.out.println(r.nextInt());
r.setSeed(n+1);
System.out.println(r.nextInt());

Это практически разрушило мою веру в оригинальный Java RNG, поскольку я использую координаты для генератора карт. Не мог бы кто-нибудь предложить либо переопределение метода Random.next(int bits), либо какое-то другое решение этой проблемы?

Спасибо за помощь!

8
задан Szoltomi 29 May 2011 в 11:24
поделиться