Java - случайные длинные, плавающие, целые и двойные

Java - случайные длинные, плавающие, целые и двойные

Этот краткий учебник покажет, как сгенерировать длинный сначала с использованием простой Java и библиотеки Apache Commons Math.

Эта статья является частьюthe “Java – Back to Basic” series здесь для примера.

1. Создайте неограниченную длинную

Начнем с создания Long:

@Test
public void givenUsingPlainJava_whenGeneratingRandomLongUnbounded_thenCorrect() {
    long generatedLong = new Random().nextLong();
}

2. Создать длинную строку в пределах диапазона

2.1. Случайная длинная запись с простой Java

Далее - давайте посмотрим на создание случайного ограниченного значения Long, то есть значения Long в заданном диапазоне или интервале:

@Test
public void givenUsingPlainJava_whenGeneratingRandomLongBounded_thenCorrect() {
    long leftLimit = 1L;
    long rightLimit = 10L;
    long generatedLong = leftLimit + (long) (Math.random() * (rightLimit - leftLimit));
}

2.2. Случайная длинная длина с помощью математики Apache Commons

Давайте посмотрим, как сгенерировать случайный Long с помощью более чистого API и Commons Math:

@Test
public void givenUsingApacheCommons_whenGeneratingRandomLongBounded_thenCorrect() {
    long leftLimit = 10L;
    long rightLimit = 100L;
    long generatedLong = new RandomDataGenerator().nextLong(leftLimit, rightLimit);
}

3. Создать неограниченное целое число

Давайте перейдем к генерации случайного целого числа без границ:

@Test
public void givenUsingPlainJava_whenGeneratingRandomIntegerUnbounded_thenCorrect() {
    int generatedInteger = new Random().nextInt();
}

Как видите, он довольно близок к генерации длинного.

4. Сгенерировать целое число в диапазоне

4.1. Случайное целое число с простой Java

Далее - случайное целое число в заданном диапазоне:

@Test
public void givenUsingPlainJava_whenGeneratingRandomIntegerBounded_thenCorrect() {
    int leftLimit = 1;
    int rightLimit = 10;
    int generatedInteger = leftLimit + (int) (new Random().nextFloat() * (rightLimit - leftLimit));
}

4.2. Случайное целое число с математикой общего пользования

И то же самое с Общей Математикой:

@Test
public void givenUsingApache_whenGeneratingRandomIntegerBounded_thenCorrect() {
    int leftLimit = 1;
    int rightLimit = 10;
    int generatedInteger = new RandomDataGenerator().nextInt(leftLimit, rightLimit);
}

5. Создать неограниченное плавание

Теперь давайте перейдем к генерации случайных чисел с плавающей запятой - сначала неограниченных:

@Test
public void givenUsingPlainJava_whenGeneratingRandomFloatUnbouned_thenCorrect() {
    float generatedFloat = new Random().nextFloat();
}

6. Создать поплавок в пределах диапазона

6.1. Случайное число с плавающей запятой с простой Java

И ограниченное случайное плавание:

@Test
public void givenUsingPlainJava_whenGeneratingRandomFloatBouned_thenCorrect() {
    float leftLimit = 1F;
    float rightLimit = 10F;
    float generatedFloat = leftLimit + new Random().nextFloat() * (rightLimit - leftLimit);
}

6.2. Случайное число с плавающей запятой с математикой Commons

Теперь - ограниченное случайное число с Commons Math:

@Test
public void givenUsingApache_whenGeneratingRandomFloatBounded_thenCorrect() {
    float leftLimit = 1F;
    float rightLimit = 10F;
    float randomFloat = new RandomDataGenerator().getRandomGenerator().nextFloat();
    float generatedFloat = leftLimit + randomFloat * (rightLimit - leftLimit);
}

7. Создать неограниченный дубль

7.1. Случайный неограниченный двойник с простой Java

Наконец, мы собираемся сгенерировать случайные двойные значения - сначала с помощью Java Math API:

@Test
public void givenUsingPlainJava_whenGeneratingRandomDoubleUnbounded_thenCorrect() {
    double generatedDouble = Math.random();
}

7.2. Случайный неограниченный двойной с математикой Commons

А также случайное двойное значение с библиотекой Apache Commons Math:

@Test
public void givenUsingApache_whenGeneratingRandomDoubleUnbounded_thenCorrect() {
    double generatedDouble = new RandomDataGenerator().getRandomGenerator().nextDouble();
}

8. Сгенерировать двойник в пределах диапазона

8.1. Случайный ограниченный двойной с простой Java

В этом примере давайте посмотрим на случайное двойное значение, сгенерированное в интервале - с помощью Java:

@Test
public void givenUsingPlainJava_whenGeneratingRandomDoubleBounded_thenCorrect() {
    double leftLimit = 1D;
    double rightLimit = 10D;
    double generatedDouble = leftLimit + new Random().nextDouble() * (rightLimit - leftLimit);
}

8.2. Случайный ограниченный двойной с математикой общего пользования

И, наконец, случайный двойной интервал с использованием библиотеки Apache Commons Math:

@Test
public void givenUsingApache_whenGeneratingRandomDoubleBounded_thenCorrect() {
    double leftLimit = 1D;
    double rightLimit = 100D;
    double generatedDouble = new RandomDataGenerator().nextUniform(leftLimit, rightLimit);
}

И у вас это есть - быстрые и конкретные примеры того, как генерировать как неограниченные, так и ограниченные значения для наиболее распространенных числовых примитивов в Java.

9. Заключение

Этот урок иллюстрирует, как мы можем генерировать случайные числа, связанные или несвязанные, используя различные методы и библиотеки.

Как всегда, реализацию всех этих примеров и фрагментов можно найти вGitHub project. Это проект на основе Maven, поэтому его легко импортировать и запускать.