Сохранение и загрузка состояния генератора случайных чиселJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Сохранение и загрузка состояния генератора случайных чисел

Сообщение Anonymous »

Рассматривая генератор случайных чисел Java, я хочу «сохранить», а затем «загрузить» его состояние, то есть он должен продолжать генерировать воспроизводимые идентичные случайные числа, хотя это другой экземпляр генератора случайных чисел:

Код: Выделить всё

    public static void main(String[] args) {
final java.util.Random prng1 = new java.util.Random(4);
int lastInt = 0;
// Generate arbitrary amount of random numbers
for (int i = 1; i < 21; i++) {
lastInt = prng1.nextInt();
}
// TODO: Save state
// TODO: Load state later, continuing with the same random numbers as if it were the same random number generator
final java.util.Random prngRestored = new java.util.Random(lastInt);

System.out.println("Should be identical: " + prng1.nextInt() + " =!= " + prngRestored.nextInt());
}
Можно ли этого добиться, и если да, то как?
Одна из идей состоит в том, чтобы также сохранить количество генерируемых чисел и позволить " "восстановленный" prng с тем же начальным значением, что и исходный prng, перебирает то же количество чисел, чтобы добраться до того же внутреннего состояния, однако это похоже на напрасную трату вычислительной мощности.

Подробнее здесь: https://stackoverflow.com/questions/792 ... ator-state
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»