Что касается предоставления long
семян java.util.Random
, если я создам экземпляр объекта один раз, кажется, что если я просто возьму время как семя, которое будет удовлетворительным для жизни программы, что для моего Цель означает, что результат серии вызовов nextDouble()
выглядит случайным.оптимальная Java Случайное семя
Предположим из соображений простоты кода, я создаю экземпляр Random
, используйте его несколько раз, затем повторно создайте экземпляр и повторите. Если семя предоставляется аналогично, семена будут похожими и увеличиваться, потому что они основаны на времени. Увеличение будет небольшим по сравнению со значением, если это количество секунд с 1 января 1970 года. (Редактировать: этот вопрос был задан в 2011 году.)
Если я подключу вывод nextDouble()
, экземпляр Random
с неслучайным посевом, основанным на времени, вызывает появление тонкой структуры в составной цепочке вывода от nextDouble()
. Другой способ сформулировать этот вопрос: нужно ли семя равномерно из набора long
.
Ничего себе, спасибо Google. Вы связали меня с документацией 1.4.2. Видимо, у вас не было записки о том, что Java 7 отсутствует? – corsiKa
У меня появилась привычка добавлять java6 во все мои поисковые запросы Google для Java :-) Во всяком случае, обновите ссылку java6, по крайней мере. – paxdiablo
Возможно, вы могли бы объяснить, как это лучше, чем случайный по умолчанию. ;) (см. мой ответ) –