Не можете предсказать это, но знаете его абсолютно, , если вы знаете, что именно System.currentTimeMillis
вернется, когда вы позвоните new Random()
. Это потому, что new Random()
является ярлыком для new Random(System.currentTimeMillis())
, который устанавливает семя псевдослучайного генератора. (Ну, вот что он сделал, когда я в последний раз смотрел на источник, docs don't actually say он должен использовать это.)if Вы знаете, что семя используется new Random()
. Псевдослучайные генераторы детерминированы, если вы знаете семя, вы знаете последовательность. Обновление: смотря на источник Java 6 [у меня нет исходного кода Java 7], по умолчанию семя представляет собой комбинацию числа семян, которое увеличивается при использовании, плюс System.nanoTime
. Так что вам нужно знать обо всех этих. Поднимает планку.
Если вы не знать точное значение System.currentTimeMillis()
как, когда new Random()
происходит семя используется new Random()
, то это очень трудно действительно предсказать, что следующее значение будет. Это точка псевдослучайных генераторов. Я не скажу, что это невозможно. Просто действительно, действительно трудно сделать с любой степенью уверенности.
Update после вопроса редактирования: Это возможно, но очень, очень трудно, и с точки зрения делать это таким образом, что позволит игроку улучшить свой результат в игре, я бы скажем, вы можете его игнорировать.
Обновлен мой ответ, чтобы перейти к редактированию. –