Какво е генератор на произволни числа в Java?

Случайни числа обикновено се използват за създаване на приложения като зарове за настолна игра, програма за хазартни игри и т.н. Обикновено генерирането на произволни числа отнема много време. Но в езика за програмиране на Java това може да се постигне по три начина. Те са разгледани в долния раздел Функции на генератора на произволни числа в Java.

Функции на генератора на произволни числа в Java

В Java, случайни числа могат да бъдат генерирани по 3 начина:

  • Метод Math.random
  • 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, задайте maxvalue като 20, а minvalue като 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 и др. Възможно е също така да се предаде диапазонът от числа като аргументи, така че да се генерира произволно число в този диапазон, За да се използва този клас, трябва да бъде импортиран класът Random на 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 и Random Class. И в двата случая се използва метод 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 (). Този метод може да се използва както в Random Class, така и в ThreadLocalRandom Class:

Пример №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. Генератор на случайни числа в С
  3. Генератор на случайни числа в R
  4. Рекурсия в Java
  5. Генератор на случайни числа в Matlab
  6. Генератор на случайни числа в C #
  7. Масиви в Java програмиране
  8. Генератор на случайни числа в JavaScript
  9. Генератор на произволни числа в PHP