Co je generátor náhodných čísel v Javě?

Náhodná čísla se běžně používají při vytváření aplikací, jako jsou kostky pro deskovou hru, program pro hazardní hry atd. Generování náhodných čísel obvykle vyžaduje mnoho času. V programovacím jazyce Java je toho však možné dosáhnout třemi způsoby. Jsou řešeny v níže uvedené části Funkce generátoru náhodných čísel v Javě.

Funkce generátoru náhodných čísel v Javě

V Javě lze náhodná čísla generovat třemi způsoby:

  • Math.random metoda
  • java.util.Náhodná třída
  • ThreadLocalRandom třída

1. Math.random () metoda

Třída Java Math nabízí řadu metod pro práci na výpočtech, jako jsou logaritmy, průměr, exponentiace atd. Random () je jedna z metod mezi nimi, která vrací kladnou dvojitou hodnotu v rozsahu 0, 0 a 1, 0, kde 0, 0 je včetně a 1.0 je exkluzivní. Tuto metodu lze použít s nebo bez použití parametrů. Pokud jsou uvedeny parametry, bude generováno náhodné číslo v rozsahu daného parametru.

Příklad č. 1

Kód:

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

Výstup:

Ve výše uvedeném příkladu je náhodné číslo generováno pomocí metody Math.random () dvěma způsoby - přímým použitím v hlavní metodě a vyvoláním metody, která obsahuje Math.random () pomocí objektu. Jak je uvedeno ve výše uvedeném vysvětlení, můžeme vidět, že jsou generována 2 náhodná čísla v rozsahu 0, 0 a 1, 0.

Pro vygenerování náhodného čísla v rozsahu parametrů je níže uveden obecný výraz:

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

Příklad č. 2

Kde maxvalue je horní mez rozsahu a min hodnota je dolní mez rozsahu. Například pro vygenerování náhodného čísla mezi 10 a 20 nastavte maximální hodnotu na 20 a hodnotu na 10.

Kód:

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

Výstup:

2. java.util.Náhodná třída

Java.util.Random třída generuje náhodná čísla různých datových typů, jako je float, long, integer, double, Boolean atd. Je také možné předat rozsah čísel jako argumenty, takže v tomto rozsahu bude vygenerováno náhodné číslo. . Aby bylo možné tuto třídu použít, musí být importována náhodná třída java.util (java.util.Random). Po importu této třídy vytvořte instanci a zavolejte metody jako next long (), nextInt () atd. Pomocí této instance.

Příklad č. 1

Kód:

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

Výstup:

Ve výše uvedeném programu je generována náhodná dvojitá hodnota pomocí metody nextDouble ().

3. ThreadLocalRandom třída

ThreadLocalRandom třída je specializovaný typ třídy Random, který je představen v Java verzi 1.7. ThreadLocalRandom.current (). NextInt () je jednou z běžných metod, která se používá ke generování náhodných čísel. Obvykle se používá v aplikacích s více vlákny.

Příklad č. 1

Kód:

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

Výstup:

Generování celých čísel

Náhodná celá čísla lze vygenerovat pomocí třídy ThreadLocalRandom a náhodné třídy. V obou případech je metoda nextInt () použita pro stejný způsob:

Příklad č. 1

Kód:

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

Výstup:

Ve výše uvedeném příkladu jsou generována tři čísla typu Náhodné celé číslo, kde jedna z metody nextInt () má jako argument 30. Takže při generování náhodného čísla bude 30 nastaveno jako horní limit a nula (výchozí dolní limit) bude nastavena jako dolní limit.

Generování čísel Float Point

Podobně jako při generování celých čísel lze čísla s pohyblivou řádovou čárkou generovat pomocí metody nextFloat (). Tuto metodu lze použít ve třídě Random Class i ThreadLocalRandom:

Příklad č. 1

Kód:

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

Výstup:

Závěr

Java obsahuje množství funkcí, které lze použít v programech. To pomáhá zkrátit dobu zpracování a řádky kódu. Generování náhodných čísel je jeden úkol, kde můžeme některé z těchto funkcí využít. Tento dokument popisuje různé metody, jak toho dosáhnout.

Doporučené články

Toto je průvodce generátorem náhodných čísel v Javě. Zde diskutujeme funkce v java s příklady a dvěma různými generátory. Další informace naleznete také v dalších souvisejících článcích -

  1. Generátor náhodných čísel v Pythonu
  2. Generátor náhodných čísel v C
  3. Generátor náhodných čísel v R
  4. Rekurze v Javě
  5. Generátor náhodných čísel v Matlabu
  6. Generátor náhodných čísel v C #
  7. Pole v programování Java
  8. Generátor náhodných čísel v JavaScriptu
  9. Generátor náhodných čísel v PHP

Kategorie: