Что такое генератор случайных чисел в Java?

Случайные числа обычно используются при создании приложений, таких как Dice для настольной игры, Gambling Program и т. Д. Обычно генерация случайных чисел занимает много времени. Но в языке программирования Java этого можно достичь тремя способами. Они рассматриваются в следующем разделе Функции генератора случайных чисел в Java.

Функции генератора случайных чисел в Java

В Java случайные числа могут быть сгенерированы тремя способами:

  • Математический метод
  • java.util.Случайный класс
  • Класс ThreadLocalRandom

1. Метод Math.random ()

Класс Java Math предлагает ряд методов для работы с вычислениями, таких как логарифмы, среднее, возведение в степень и т. Д. Random () является одним из методов, среди которых возвращается положительное двойное значение в диапазоне от 0, 0 до 1, 0, где 0, 0 включительно и 1.0 является эксклюзивным. Этот метод может использоваться с параметрами или без них. Если заданы параметры, сгенерированное случайное число будет в пределах диапазона данного параметра.

Пример № 1

Код:

public class RandomNumber (
double num; //Declare a variable num
//Method which generates a random number
public double randnum()
(
num=Math.random();
return num;
)
// Main Method of a program
public static void main(String() args) (
//Printing a random number
System.out.println("Random Number generated inside main method: "+Math.random());
//Create an object of the class RandomNumber
RandomNumber randomobj=new RandomNumber();
//Store the return value obtained from randnum method in a variable randomval
double randomval=randomobj.randnum();
//Printing the random number stored in variable randomval
System.out.println("Random Number generated inside randomnumber method: "+randomval);
)
)

Выход:

В вышеприведенном примере случайное число генерируется с использованием метода Math.random () двумя способами: непосредственным применением его внутри основного метода и вызовом метода, который содержит Math.random (), с использованием объекта. Как упомянуто в объяснении выше, мы можем видеть, что 2 случайных числа генерируются в диапазоне от 0, 0 до 1, 0.

Чтобы сгенерировать случайное число в диапазоне параметров, используемое общее выражение упоминается ниже:

Math.random () * ((maxvalue - minvalue) +1) + minvalue

Пример № 2

Где maxvalue - верхняя граница диапазона, а min - нижняя граница диапазона. Например, чтобы сгенерировать случайное число от 10 до 20, установите максимальное значение равным 20 и минимальное значение равным 10.

Код:

public class RandomNumParameters (
public double randomnum(double x, double y)//max value-y, min value-x
(
double z =(Math.random()*((yx)+1)+x); //Formula for random number generation within a range
return z;
)
public static void main(String() args)
(
RandomNumParameters ran=new RandomNumParameters(); //Create instance for the class RandomNumParameters
double num=ran.randomnum(3.0, 10.0); //Call the Method
System.out.println("Random number generated within the range of 3 and 10: "+num );
) )

Выход:

2. java.util.Random Class

Класс Java.util.Random генерирует случайные числа различных типов данных, таких как float, long, integer, double, Boolean и т. Д. Также можно передавать диапазон чисел в качестве аргументов, чтобы в этом диапазоне генерировалось случайное число, Чтобы использовать этот класс, должен быть импортирован случайный класс java.util (java.util.Random). Как только этот класс импортирован, создайте экземпляр и вызовите методы, такие как next long (), nextInt () и т. Д., Используя этот экземпляр.

Пример № 1

Код:

//Java program to generate Random numbers using Random class
package Sample;
import java.util.Random; //import Random Class
public class RandomNum (
public static void main(String() args) (
Random rand=new Random(); //Create instance of Random class
double randomnum=rand.nextDouble(); //Assign the Random Double value in randomnum variable
System.out.println("Random Double value: "+ randomnum);
)
)

Выход:

В вышеприведенной программе случайное двойное значение генерируется с использованием метода nextDouble ().

3. Класс ThreadLocalRandom

Класс ThreadLocalRandom - это специализированный тип класса Random, который представлен в Java версии 1.7. ThreadLocalRandom.current (). NextInt () является одним из распространенных методов, который используется для генерации случайных чисел. Обычно используется в многопоточных приложениях.

Пример № 1

Код:

//Java Program to generate random numbers using ThreadLocalRandom Class
import java.util.concurrent.ThreadLocalRandom;
public class RandomNumThread (
public static void main(String() args) (
//print a random double
System.out.println("Random Double value using ThreadLocalRandom: "+ThreadLocalRandom.current().nextDouble());
)
)

Выход:

Генерация целых чисел

Случайные целые числа могут быть сгенерированы с использованием класса ThreadLocalRandom и случайного класса. В обоих случаях метод nextInt () используется для того же:

Пример № 1

Код:

//Java program to generate Random integer numbers using Random and THreadLocalRandom Class
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;
public class RandomInteger (
public static void main(String() args) (
Random rnd=new Random(); //Create instance of Random class
int randomnum1=rnd.nextInt(); //Random Integer value using Random Class
int randomnum2=rnd.nextInt(30); //Random Integer value within the range of 30
int randomnum3= ThreadLocalRandom.current().nextInt(); //Random Integer value using ThreadLocalRandom Class
System.out.println("Random Integer value using Random Class: "+ randomnum1);
System.out.println("Random Integer value within the range of 30: "+ randomnum2);
System.out.println("Random Integer value using ThreadLocalRandom Class: "+ randomnum3);
)
)

Выход:

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

Генерация чисел с плавающей точкой

Подобно генерации целых чисел, числа с плавающей точкой могут быть сгенерированы с помощью метода nextFloat (). Этот метод может использоваться как в Случайном Классе, так и в Классе ThreadLocalRandom:

Пример № 1

Код:

//Java program to generate Random Float numbers using Random and THreadLocalRandom Class
import java.util.Random;
import java.util.concurrent.ThreadLocalRandom;
public class RandomFloat (
public static void main(String() args) (
Random rnd=new Random(); //Create instance of Random class
float randomnum1=rnd.nextFloat(); //Random Float value using Random Class
float randomnum2= ThreadLocalRandom.current().nextFloat(); //Random Float value using ThreadLocalRandom Class
System.out.println("Random float value using Random Class: "+ randomnum1);
System.out.println("Random float value using ThreadLocalRandom Class: "+ randomnum2);
)
)

Выход:

Вывод

Java содержит множество функций, которые можно использовать в программах. Это помогает сократить время обработки и количество строк кода. Генерация случайных чисел является одной из задач, где мы можем использовать некоторые из этих функций. Этот документ охватывает различные методы для достижения этой цели.

Рекомендуемые статьи

Это руководство для генератора случайных чисел в Java. Здесь мы обсуждаем функции в Java с примерами и двумя различными генераторами. Вы также можете просмотреть другие наши статьи, чтобы узнать больше -

  1. Генератор случайных чисел в Python
  2. Генератор случайных чисел в C
  3. Генератор случайных чисел в R
  4. Рекурсия на Яве
  5. Генератор случайных чисел в Matlab
  6. Генератор случайных чисел в C #
  7. Массивы в программировании на Java
  8. Генератор случайных чисел в JavaScript
  9. Генератор случайных чисел в PHP