Ce este generatorul de număr aleatoriu în Java?

Numerele aleatorii sunt utilizate în mod obișnuit în crearea de aplicații precum Dice pentru un joc de masă, Program de jocuri de noroc, etc. În mod normal, generarea de numere aleatorii durează foarte mult timp. Dar, în limbajul de programare Java, acest lucru poate fi realizat folosind trei moduri. Acestea sunt abordate în secțiunea de mai jos Funcții ale generatorului de numere aleatorii din Java.

Funcțiile generatorului de numere aleatorii în Java

În Java, numerele aleatorii pot fi generate folosind 3 moduri:

  • Metoda Math.random
  • clasa java.util.Random
  • Clasa ThreadLocalRandom

1. Metoda Math.random ()

Clasa Java Math oferă o serie de metode pentru a lucra la calcule, cum ar fi logaritmi, medie, exponențiere, etc. aleatoriu () este una dintre metodele dintre ele care returnează o valoare dublă pozitivă în intervalul 0.0 și 1.0 unde 0.0 este inclus și 1.0 este exclusiv. Această metodă poate fi utilizată cu sau fără a utiliza parametri. Dacă sunt dați parametri, numărul aleatoriu generat va fi cuprins în intervalul dat.

Exemplul # 1

Cod:

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);
)
)

ieşire:

În Exemplul de mai sus, Random Number este generat folosind metoda Math.random () în două moduri. Aplicând-o direct în interiorul metodei principale și apelând la o metodă care conține Math.random () folosind obiectul. Așa cum am menționat în explicația de mai sus, putem vedea că sunt generate 2 numere aleatorii în intervalul 0.0 și 1.0.

Pentru a genera un număr aleatoriu în intervalul de parametri, expresia generală este menționată mai jos:

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

Exemplul # 2

În cazul în care valoarea maximă este limita superioară a intervalului și valoarea mină este limita inferioară a intervalului. De exemplu, pentru a genera un număr aleator între 10 și 20, setați valoarea maximă ca 20 și valoarea minimă ca 10.

Cod:

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 );
) )

ieşire:

2. Clasa java.util.Random

Clasa Java.util.Random generează numere aleatoare de diferite tipuri de date, cum ar fi float, lung, întreg, dublu, boolean, etc. Este posibil, de asemenea, să treci intervalul de numere ca argumente, astfel încât un număr aleatoriu să fie generat în cadrul acelui interval . Pentru a utiliza această clasă, clasa Random de java.util trebuie importată (java.util.Random). Odată importată această clasă, creați o instanță și apelați la metodele cum ar fi next long (), nextInt (), etc. folosind acea instanță.

Exemplul # 1

Cod:

//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);
)
)

ieşire:

În programul de mai sus, o valoare dublă aleatorie este generată folosind metoda nextDouble ().

3. Clasa ThreadLocalRandom

Clasa ThreadLocalRandom este un tip specializat de clasă aleatorie care este introdus în versiunea Java 1.7. ThreadLocalRandom.current (). NextInt () este una dintre metodele obișnuite care se utilizează pentru a genera numere aleatorii. Este utilizat în mod normal în aplicații cu mai multe filete.

Exemplul # 1

Cod:

//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());
)
)

ieşire:

Generarea de numere întregi

Numerele întregi aleatoare pot fi generate folosind clasa ThreadLocalRandom și Clasa Random. În ambele cazuri, o metodă nextInt () este utilizată pentru aceeași:

Exemplul # 1

Cod:

//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);
)
)

ieşire:

În exemplul de mai sus, sunt generate trei numere de tip aleatoriu ale numărului în care unul dintre metoda nextInt () are 30 ca argument. Deci, în timp ce se generează un număr aleatoriu, 30 va fi stabilit ca limită superioară și zero (limita inferioară implicită) va fi stabilit ca limită inferioară.

Generarea de numere cu punct de plutire

Similar cu generarea de numere întregi, numerele în virgulă flotantă pot fi generate folosind o metodă nextFloat (). Această metodă poate fi utilizată atât în ​​clasa aleatoare cât și în clasa ThreadLocalRandom:

Exemplul # 1

Cod:

//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);
)
)

ieşire:

Concluzie

Java conține o multitudine de funcții care pot fi utilizate în programe. Acest lucru ajută la reducerea timpului de procesare și a liniilor de cod. Generarea numărului aleatoriu este o sarcină în care putem folosi unele dintre aceste funcții. Acest document acoperă diferitele metode pentru a realiza acest lucru.

Articole recomandate

Acesta este un ghid pentru Generator de numere aleatoare în Java. Aici discutăm funcțiile din Java cu exemple și două generatoare diferite. Puteți parcurge și alte articole conexe pentru a afla mai multe -

  1. Generator de număr aleatoriu în Python
  2. Generator de număr aleatoriu în C
  3. Generator de număr aleatoriu în R
  4. Recursiune în Java
  5. Generator de număr aleatoriu în Matlab
  6. Generator de număr aleatoriu în C #
  7. Schiri în programare Java
  8. Generator de număr aleatoriu în JavaScript
  9. Generator de număr aleatoriu în PHP