Подтвердить что ты не робот

Java: случайное длинное значение в интервале

Возможный дубликат:
Java: случайное длинное число в 0 <= x < n диапазон

Я хочу создать случайное длинное значение в интервале, но кажется, что класс Random nextLong() не принимает аргументы типа nextInt(). Что я могу сделать здесь?

4b9b3361

Ответ 1

Если вам нужны значения, основанные на диапазонах, выполните следующие действия:

 long LOWER_RANGE = 0; //assign lower range value
 long UPPER_RANGE = 1000000; //assign upper range value
 Random random = new Random();


 long randomValue = LOWER_RANGE + 
                           (long)(random.nextDouble()*(UPPER_RANGE - LOWER_RANGE));

Ответ 2

Вы можете использовать nextInt для генерации более высоких и более низких значений длительности. Можно даже расширить класс Random с помощью собственного метода nextLong (хотя композиция может быть более безопасным выбором для более серьезного программирования).

Взгляните на Javadoc nextInt (int n). Метод nextLong может быть реализован с использованием того же алгоритма. Правильно это может показаться немного сложным. Подготовьтесь к математике с ручкой и бумагой. Использование проверенной библиотеки разумно, если вы не просто кодируете удовольствие.