Перейти к контенту

Генерация случайных чисел в заданном диапазоне на Java

В этом уроке мы рассмотрим различные способы генерации случайных чисел в пределах диапазона.

Math.random

Math.random в Java дает случайное двойное значение, которое больше или равно 0,0 и меньше чем 1,0.

 

Покажу как использовать метод math.random:

public int getRandomNumber(int min, int max) {
    return (int) ((Math.random() * (max - min)) + min);
}

Что ж, давайте посмотрим, что происходит, когда Math.random возвращает 0.0, это самый наименьший возможный вариант:

0.0 * (max - min) + min = min

Таким образом, наименьшее число, которое мы можем получить = min.

Если Math.random возвращает 1.0, это максимально возможный вариант, то мы получим:

1.0 * (max - min) + min = max - min + min = max

Наибольшее число, которое мы можем получить — это max.

java.util.Random.nextInt

Экземпляр java.util.Random может также использоваться, чтобы сделать то же самое.

Давайте воспользуемся методом java.util.Random.nextInt, чтобы получить случайное число:

public int getRandomNumberUsingNextInt(int min, int max) {
    Random random = new Random();
    return random.nextInt(max - min) + min;
}

Параметр мин включается, в то время как максимум, исключается.

java.util.Random.ints

Метод java.util.Random.ints возвращает IntStream случайных чисел.

Таким образом, мы можем использовать метод java.util.Random.ints:

public int getRandomNumberUsingInts(int min, int max) {
    Random random = new Random();
    return random.ints(min, max)
      .findFirst()
      .getAsInt();
}

Здесь также, указанное min включено, а max исключено.

 

Фрагменты кода можно найти на GitHub.

Оцени статью

Средняя оценка / 5. Количество голосов:

Спасибо, помогите другим - напишите комментарий, добавьте информации к статье.

Или поделись статьей

Видим, что вы не нашли ответ на свой вопрос.

Помогите улучшить статью.

 

Пока нет комментариев.

Добавить комментарий

Ваш e-mail не будет опубликован.

СайдбарКомментарии (0)