2015-05-09 6 views
-5

Halo all Я начал изучать Java недавно, и у меня есть вопрос, что означает случайный объект obj? что это значит ? и разница междуЧто такое случайное семя объекта

Random r1 = new Random(); Случайный r2 = новый Случайный (3);

+1

http://ru.wikipedia.org/wiki/Random_seed. http://docs.oracle.com/javase/7/docs/api/java/util/Random.html –

+1

Попробуйте сделать небольшое исследование самостоятельно, прежде чем задавать этот вопрос. –

+1

Не совсем точный дубликат, но, вероятно, ответит на ваш вопрос: http://stackoverflow.com/q/3583515/646543 – Michael0x2a

ответ

1

Это не просто вещь в стиле Java.

Очень сложно позволить компьютеру генерировать реальное случайное число. Вашему компьютеру необходимо выполнить сложный непредсказуемый расчет. Ваше начальное значение будет действовать как вход для этих вычислений.

Многие системы будут использовать временную метку в качестве семени. Потому что это значение, которое будет отличаться при каждом его запуске. Но, допустим, вы указываете семя, и что вы используете один и тот же семенные несколько раз:

Random rnd = new Random(10); 
    System.out.println(rnd.nextInt()); 
    System.out.println(rnd.nextInt()); 
    System.out.println(rnd.nextInt()); 

    // do it again with the same seed 
    rnd = new Random(10); 
    System.out.println(rnd.nextInt()); 
    System.out.println(rnd.nextInt()); 
    System.out.println(rnd.nextInt()); 

Этот код будет печатать те же 3 значения в 2 раза.

Выход:

-1157793070 
1913984760 
1107254586 
-1157793070 
1913984760 
1107254586 

Таким образом, если вы повторно начальное значение, он будет генерировать одни и те же цифры.

0

По

Random r1 = new Random(); 

вы получите различные последовательности возвращаемых чисел между вызовами приложения, даже если называя одни и те же последовательности r1 методов с теми же аргументами. Но если вы предоставите определенное количество семян, последовательности возвращаемых результатов будут одинаковыми (конечно, только если r2 будет вызываться в той же последовательности методов и аргументов).

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

Смежные вопросы