@TostMaria

Как работает рандом в java?

У меня есть список чисел. Минимальное число в списке - 97, максимальное - 955.
Всего 42 числа.
Использую метод "mathRandd=(int)(Math.random() * 1000) + 1", подозрительно часто выпадают одни и те же числа. Т.е. несколько базовых чисел (2-3) выпадают очень часто, а к ним уже "рандомно" другие. Причем, если программа "выбрала" изначально несколько чисел, то пока я не заменю весь список, именно эти числа будут являться базовыми все время (т.е. при каждом запуске выборка часто выпадающих чисел сохраняется).
Вопрос - это на ночь вредно программировать, или есть объяснение и лучше использовать какой-то другой рандом?
  • Вопрос задан
  • 3632 просмотра
Пригласить эксперта
Ответы на вопрос 2
icelaba
@icelaba
Знаю и умею всё
Обычно такие наблюдения вас обманывают, так что лучше себе и своим глазам не доверять,
постройте гистограмму вывода, и тогда если она будет очень сильно отличаться от равномерного распределения делайте выводы, но смею заверить при большом числе прогонов джавовский Math.random() отличаться не будет.
Хотя конечно Math.random плохой генератор случайных чисел, но не настолько как вы описали.
Ответ написан
Комментировать
@gurinderu
java developer
Я бы посоветовал все же использовать вам commons.apache.org/proper/commons-math/apidocs/org...

C Math.random() иногда довольно сложно описывать сложные случаи рандомизации.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы