Wat is Random Number Generator op Java?

Willekeurige getallen worden vaak gebruikt bij het maken van applicaties zoals dobbelstenen voor een bordspel, gokprogramma, enz. Normaal gesproken kost het genereren van willekeurige getallen veel tijd. Maar in de programmeertaal Java kan dit op drie manieren worden bereikt. Ze worden behandeld in de onderstaande sectie Functies voor het genereren van willekeurige getallen in Java.

Functies voor het genereren van willekeurige getallen op Java

In Java kunnen willekeurige nummers op drie manieren worden gegenereerd:

  • Math.random methode
  • java.util.Random class
  • Klasse ThreadLocalRandom

1. Math.random () methode

De klasse Java Math biedt een aantal methoden om aan berekeningen te werken, zoals logaritmen, gemiddelde, exponentiatie, etc. random () is een van de methoden die een positieve dubbele waarde binnen het bereik van 0, 0 en 1, 0 oplevert, waarbij 0, 0 inclusief is en 1.0 is exclusief. Deze methode kan met of zonder parameters worden gebruikt. Als er parameters worden opgegeven, ligt het gegenereerde willekeurige getal binnen het bereik van de gegeven parameter.

Voorbeeld 1

Code:

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

Output:

In het bovenstaande voorbeeld wordt willekeurig nummer op twee manieren gegenereerd met de methode Math.random () - rechtstreeks toepassen in de hoofdmethode en met het object een methode aanroepen die Math.random () bevat. Zoals vermeld in de uitleg hierboven, kunnen we zien dat 2 willekeurige getallen worden gegenereerd binnen het bereik van 0, 0 en 1, 0.

Om een ​​willekeurig getal binnen het bereik van parameters te genereren, wordt hieronder de algemene uitdrukking gebruikt:

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

Voorbeeld 2

Waarbij maxwaarde de bovengrens van het bereik is en min waarde de ondergrens van het bereik is. Als u bijvoorbeeld een willekeurig getal tussen 10 en 20 wilt genereren, stelt u de maximale waarde in op 20 en de minimale waarde op 10.

Code:

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

Output:

2. java.util.Random Class

Java.util.Random class genereert willekeurige getallen van verschillende gegevenstypen zoals float, long, integer, dubbel, Boolean, enz. Het is ook mogelijk om het bereik van getallen als argumenten door te geven, zodat binnen dat bereik een willekeurig getal wordt gegenereerd . Om deze klasse te gebruiken, moet de willekeurige klasse java.util worden geïmporteerd (java.util.Random). Nadat deze klasse is geïmporteerd, maakt u een instantie en roept u de methoden aan als next long (), nextInt (), enz. Met behulp van die instantie.

Voorbeeld 1

Code:

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

Output:

In het bovenstaande programma wordt een willekeurige dubbele waarde gegenereerd met de methode nextDouble ().

3. ThreadLocalRandom-klasse

ThreadLocalRandom-klasse is een gespecialiseerd type willekeurige klasse die wordt geïntroduceerd in Java-versie 1.7. ThreadLocalRandom.current (). NextInt () is een van de veelgebruikte methoden die wordt gebruikt om willekeurige getallen te genereren. Het wordt normaal gebruikt in multi-threaded applicaties.

Voorbeeld 1

Code:

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

Output:

Genereren van gehele getallen

Willekeurige gehele getallen kunnen worden gegenereerd met de klasse ThreadLocalRandom en de klasse Random. In beide gevallen wordt een methode nextInt () gebruikt voor hetzelfde:

Voorbeeld 1

Code:

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

Output:

In het bovenstaande voorbeeld worden drie willekeurige getallen van het gehele getal gegenereerd, waarbij een van de methode nextInt () 30 als argument heeft. Dus, terwijl een willekeurig getal wordt gegenereerd, wordt 30 ingesteld als de bovenste limiet en nul (standaard onderste limiet) wordt ingesteld als de onderste limiet.

Zwevende puntnummers genereren

Net als bij het genereren van gehele getallen, kunnen drijvende-kommagetallen worden gegenereerd met behulp van een methode nextFloat (). Deze methode kan worden gebruikt in zowel Random Class als ThreadLocalRandom Class:

Voorbeeld 1

Code:

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

Output:

Conclusie

Java bevat een overvloed aan functies die in programma's kunnen worden gebruikt. Dit helpt bij het verminderen van de verwerkingstijd en coderegels. Het genereren van willekeurige getallen is een taak waarbij we enkele van deze functies kunnen gebruiken. Dit document behandelt de verschillende methoden om dit te bereiken.

Aanbevolen artikelen

Dit is een gids voor Random Number Generator in Java. Hier bespreken we functies in Java met voorbeelden en twee verschillende generators. U kunt ook onze andere gerelateerde artikelen doornemen voor meer informatie -

  1. Random Number Generator in Python
  2. Willekeurige nummergenerator in C
  3. Willekeurige nummergenerator in R
  4. Recursie in Java
  5. Willekeurige nummergenerator in Matlab
  6. Willekeurige nummergenerator in C #
  7. Arrays in Java Programming
  8. Willekeurige nummergenerator in JavaScript
  9. Random Number Generator in PHP