| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Помогите разобраться с Random числами |
| Автор: bulat01 20.12.2010, 08:21 | ||
| Здравствуйте спецы по Java, помогите разобраться с кодом, точнее с применением Random
При ранинге - он кидает следующий вывод: length of a = 18[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] Random (long seed) - Creates a new random number generator using a single long seed. nextInt (int n) - Returns a pseudorandom, uniformly distributed int value between 0 (inclusive) and the specified value (exclusive), drawn from this random number generator's sequence. Первый вопрос: nextInt - для меня понятно его логика работы, он генерирует случайное число от 0 до 19 (исключая 20), это в моем случае. Но почему 18, а не 19? Второй вопрос: Единственное что понял в логике работы Random (long seed) - что если задать начальное число, при постоянном ранинге программы - случайное число выдааное генератором неизменно. Вы не могли бы более детально описать функцию Random (long seed)? а также если его рассматривать с комбинацией с nextInt? |
| Автор: jk1 20.12.2010, 12:18 | ||
В JavaDoc в принципе все написано: Если Вы задаете одинаковый seed для двух независимых Random объектов, то генерируемые ими последовательности совпадут. |
| Автор: nc30 20.12.2010, 16:54 | ||||||
Удобно использовать следующий вызов
Учитывая, что
можно особо не беспокоиться о повторяемости "семени" (seed) генератора "при постоянном ранинге программы" |
| Автор: LSD 20.12.2010, 17:24 |
У дефолтного конструктора Random в версии 1.4 именно такое поведение. В версиях 1.5 и старше, они используют более продвинутую методику. Думаю не имеет смысла пытаться ее улучшить, умолчальный алгоритм и так достаточно хорош. |
| Автор: nc30 20.12.2010, 20:45 |
| LSD, спасибо за информацию. Хотел, кстати, отослать bulat01 к http://download.oracle.com/javase/6/docs/api/index.html?java/util/Random.html, но самому надо читать их внимательнее |