Co to jest generator liczb losowych w Javie?

Liczby losowe są powszechnie używane do tworzenia aplikacji takich jak kości do gry planszowej, programu hazardowego itp. Zwykle generowanie liczb losowych zajmuje dużo czasu. Ale w języku programowania Java można to osiągnąć na trzy sposoby. Są one omówione w poniższej sekcji Funkcje generatora liczb losowych w Javie.

Funkcje generatora liczb losowych w Javie

W Javie liczby losowe można generować na 3 sposoby:

  • Metoda matematyczna losowa
  • klasa java.util.Random
  • Klasa ThreadLocalRandom

1. Metoda Math.random ()

Klasa Java Math oferuje szereg metod pracy z obliczeniami, takich jak logarytmy, średnia, potęgowanie itp. Random () jest jedną z tych metod, która zwraca dodatnią podwójną wartość z zakresu od 0, 0 do 1, 0, gdzie 0, 0 obejmuje i 1.0 jest wyłączny. Ta metoda może być używana z parametrami lub bez nich. Jeśli podane zostaną parametry, wygenerowana liczba losowa będzie w zakresie danego parametru.

Przykład 1

Kod:

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

Wynik:

W powyższym przykładzie liczba losowa jest generowana przy użyciu metody Math.random () na dwa sposoby - Bezpośrednie zastosowanie jej w metodzie głównej i wywołanie metody zawierającej Math.random () przy użyciu obiektu. Jak wspomniano w powyższym wyjaśnieniu, możemy zobaczyć, że 2 liczby losowe są generowane w zakresie od 0, 0 do 1, 0.

Aby wygenerować liczbę losową w zakresie parametrów, ogólne wyrażenie użyte zostało wymienione poniżej:

Math.random () * ((maksymalna wartość - wartość minimalna) +1) + wartość minimalna

Przykład nr 2

Gdzie wartość maksymalna to górna granica zakresu, a wartość minimalna to dolna granica zakresu. Na przykład, aby wygenerować liczbę losową z przedziału od 10 do 20, ustaw wartość maksymalną na 20, a wartość minimalną na 10.

Kod:

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

Wynik:

2. Klasa java.util.Random

Klasa Java.util.Random generuje losowe liczby różnych typów danych, takich jak zmiennoprzecinkowe, długie, całkowite, podwójne, logiczne itp. Możliwe jest również przekazanie zakresu liczb jako argumentów, dzięki czemu w tym zakresie zostanie wygenerowana liczba losowa . Aby użyć tej klasy, należy zaimportować klasę Random z java.util (java.util.Random). Po zaimportowaniu tej klasy utwórz instancję i wywołaj metody takie jak next long (), nextInt () itp., Używając tej instancji.

Przykład 1

Kod:

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

Wynik:

W powyższym programie losowa podwójna wartość jest generowana za pomocą metody nextDouble ().

3. Klasa ThreadLocalRandom

Klasa ThreadLocalRandom to wyspecjalizowany typ klasy Random, który został wprowadzony w wersji Java 1.7. ThreadLocalRandom.current (). NextInt () to jedna z typowych metod używanych do generowania liczb losowych. Zwykle jest używany w aplikacjach wielowątkowych.

Przykład 1

Kod:

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

Wynik:

Generowanie liczb całkowitych

Losowe liczby całkowite mogą być generowane przy użyciu klasy ThreadLocalRandom i klasy losowej. W obu przypadkach dla tego samego używana jest metoda nextInt ():

Przykład 1

Kod:

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

Wynik:

W powyższym przykładzie generowane są trzy losowe liczby całkowite, w których jedna z metod nextInt () ma 30 jako argument. Tak więc, generując liczbę losową, 30 zostanie ustawione jako górny limit, a zero (domyślny dolny limit) zostanie ustawiony jako dolny limit.

Generowanie liczb zmiennoprzecinkowych

Podobnie jak w przypadku generowania liczb całkowitych, liczby zmiennoprzecinkowe można generować za pomocą metody nextFloat (). Tej metody można użyć zarówno w klasie losowej, jak i klasie ThreadLocalRandom:

Przykład 1

Kod:

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

Wynik:

Wniosek

Java zawiera mnóstwo funkcji, których można używać w programach. Pomaga to w skróceniu czasu przetwarzania i linii kodu. Generowanie liczb losowych to jedno zadanie, w którym możemy korzystać z niektórych z tych funkcji. Ten dokument obejmuje różne metody osiągnięcia tego celu.

Polecane artykuły

Jest to przewodnik po Generatorze liczb losowych w Javie. Tutaj omawiamy funkcje w Javie z przykładami i dwoma różnymi generatorami. Możesz również przejrzeć nasze inne powiązane artykuły, aby dowiedzieć się więcej -

  1. Generator liczb losowych w Pythonie
  2. Generator liczb losowych w C
  3. Generator liczb losowych w R.
  4. Rekurencja w Javie
  5. Generator liczb losowych w Matlabie
  6. Generator liczb losowych w C #
  7. Tablice w programowaniu Java
  8. Generator liczb losowych w JavaScript
  9. Generator liczb losowych w PHP