Cos'è il generatore di numeri casuali in Java?

I numeri casuali vengono comunemente utilizzati nella creazione di applicazioni come dadi per un gioco da tavolo, un programma di gioco d'azzardo, ecc. Normalmente, la generazione di numeri casuali richiede molto tempo. Ma, nel linguaggio di programmazione Java, questo può essere ottenuto usando tre modi. Sono indicati nella sezione seguente Funzioni del generatore di numeri casuali in Java.

Funzioni del generatore di numeri casuali in Java

In Java, i numeri casuali possono essere generati in 3 modi:

  • Metodo Math.random
  • java.util.Random class
  • Classe ThreadLocalRandom

1. Metodo Math.random ()

La classe Java Math offre una serie di metodi per lavorare su calcoli come logaritmi, media, esponenziazione, ecc. Random () è uno dei metodi tra loro che restituisce un doppio valore positivo compreso tra 0, 0 e 1, 0 dove 0, 0 è inclusivo e 1.0 è esclusivo. Questo metodo può essere utilizzato con o senza l'utilizzo di parametri. Se vengono forniti parametri, il numero casuale generato sarà compreso nell'intervallo del parametro specificato.

Esempio 1

Codice:

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

Produzione:

Nell'esempio sopra, il numero casuale viene generato usando il metodo Math.random () in due modi: applicandolo direttamente all'interno del metodo principale e chiamando un metodo che contiene Math.random () usando l'oggetto. Come menzionato nella spiegazione sopra, possiamo vedere che vengono generati 2 numeri casuali nell'intervallo 0, 0 e 1, 0.

Per generare un numero casuale all'interno dell'intervallo di parametri, l'espressione generale utilizzata è menzionata di seguito:

Math.random () * ((valore massimo - valore minimo) +1) + valore minimo

Esempio n. 2

Dove maxvalue è il limite superiore dell'intervallo e il valore min è il limite inferiore dell'intervallo. Ad esempio, per generare un numero casuale compreso tra 10 e 20, impostare il valore massimo su 20 e il valore minimo su 10.

Codice:

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

Produzione:

2. Classe java.util.Random

La classe Java.util.Random genera numeri casuali di diversi tipi di dati come float, long, integer, double, Boolean, ecc. È anche possibile passare l'intervallo di numeri come argomenti in modo da generare un numero casuale all'interno di tale intervallo . Per utilizzare questa classe, è necessario importare la classe casuale di java.util (java.util.Random). Una volta importata questa classe, crea un'istanza e chiama i metodi come next long (), nextInt (), ecc. Usando quell'istanza.

Esempio 1

Codice:

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

Produzione:

Nel programma sopra, un doppio valore casuale viene generato usando il metodo nextDouble ().

3. Classe ThreadLocalRandom

La classe ThreadLocalRandom è un tipo specializzato di classe Random che viene introdotto in Java versione 1.7. ThreadLocalRandom.current (). NextInt () è uno dei metodi comuni utilizzati per generare numeri casuali. Viene normalmente utilizzato in applicazioni multi-thread.

Esempio 1

Codice:

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

Produzione:

Generazione di numeri interi

Gli interi casuali possono essere generati utilizzando la classe ThreadLocalRandom e la classe Random. In entrambi i casi, viene utilizzato un metodo nextInt () per lo stesso:

Esempio 1

Codice:

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

Produzione:

Nell'esempio sopra, vengono generati tre numeri di tipo intero casuale in cui uno del metodo nextInt () ha 30 come argomento. Pertanto, durante la generazione di un numero casuale, 30 verrà impostato come limite superiore e zero (limite inferiore predefinito) verrà impostato come limite inferiore.

Generazione di numeri in virgola mobile

Simile alla generazione di numeri interi, i numeri in virgola mobile possono essere generati utilizzando un metodo nextFloat (). Questo metodo può essere utilizzato sia in Random Class che in ThreadLocalRandom Class:

Esempio 1

Codice:

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

Produzione:

Conclusione

Java contiene molte funzioni che possono essere utilizzate nei programmi. Questo aiuta a ridurre i tempi di elaborazione e le righe di codice. La generazione di numeri casuali è un'attività in cui è possibile utilizzare alcune di queste funzioni. Questo documento tratta i diversi metodi per raggiungere questo obiettivo.

Articoli consigliati

Questa è una guida al generatore di numeri casuali in Java. Qui discutiamo delle funzioni in Java con esempi e due diversi generatori. Puoi anche consultare i nostri altri articoli correlati per saperne di più -

  1. Generatore di numeri casuali in Python
  2. Generatore di numeri casuali in C
  3. Generatore di numeri casuali in R
  4. Ricorsione in Java
  5. Generatore di numeri casuali in Matlab
  6. Generatore di numeri casuali in C #
  7. Matrici nella programmazione Java
  8. Generatore di numeri casuali in JavaScript
  9. Generatore di numeri casuali in PHP

Categoria: