Java Random setSeed () не является детерминированным - PullRequest
1 голос
/ 10 октября 2019

У меня есть класс 'Face', который создает статический экземпляр java.util.Random:

public static Random random = new Random();

Затем в Main я устанавливаю начальное число и получаю случайное значение:

Face.random.setSeed(1);
int rand = Face.random.nextInt(5);

Однако значение 'rand' меняется каждый раз, когда я запускаю программу. Мне нужно, чтобы это было одинаково каждый раз. Я думал, что установка семени сделала это, но я не должен правильно понимать. Чего мне не хватает?

1 Ответ

0 голосов
/ 10 октября 2019

Если вы всегда устанавливаете начальное значение для каждого вызова, то, по-видимому, последовательность случайных чисел будет сброшена.

Попробуйте

random.setSeed(1);
for (int i = 0; i < 5; i++) {
    int rand = random.nextInt(5);
    System.out.println(rand);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...