Kurzusok
/
Java
Java
/
Tanterv
/
Véletlenszerűség
Vé

Véletlenszerűség ebben a kurzusban: Java

6 feladat

A(z) Véletlenszerűség fogalomról

Véletlen értékek előállítása

Java nyelven többféleképpen is előállíthatsz véletlen értékeket.

A Random használata

A java.util.Random osztály több metódust kínál álvéletlen értékek előállítására.

Random random = new Random();

random.next(8); // Generates a random int with the given number of bits, in this case 8

random.nextInt(); // Generates a random int in the range Integer.MIN_VALUE through Integer.MAX_VALUE
random.nextInt(10); // Generates a random int in the range 0 to 10

random.nextFloat(); // Generates a random float in the range 0.0 to 1.0
random.nextDouble(); // Generates a random double in the range 0.0 to 1.0

random.nextBoolean(); // Generates a random boolean value
random.nextLong(); // Generates a random long value

Az alapértelmezett konstruktor mellett a Random osztálynak van egy másik konstruktora is, amelynél egyéni mag adható meg. Ha két Random példányt ugyanazzal a maggal hozunk létre, és mindkettőn ugyanazokat a metódushívásokat hajtjuk végre, akkor ugyanazokat a számsorozatokat állítják elő és adják vissza.

A Math.random() használata

A Math.random() metódus egy segédmetódus, amellyel véletlen Double-t lehet előállítani a 0.0 és 1.0 közötti tartományban.

A ThreadLocalRandom használata

A java.util.concurrent.ThreadLocalRandom osztály a java.util.Random alternatívája, és szálbiztosnak tervezték. Ez az osztály néhány extra segédmetódust is tartalmaz, amelyekkel alsó és felső korlátot is megadva állíthatsz elő értékeket, ami egy kicsit könnyebbé teszi a használatát.

ThreadLocalRandom random = ThreadLocalRandom.current();

random.nextInt(10, 20); // Generates a random int in the range 10 to 20
random.nextLong(10, 20); // Generates a random long in the range 10 to 20

random.nextFloat(10.0, 20.0); // Generates a random float in the range 10 to 20
random.nextDouble(10.0, 20.0); // Generates a random double in the range 10 to 20

Biztonság

A véletlen értékeket gyakran használják érzékeny adatok, például jelszavak előállítására. A fent leírt véletlenszám-generáló metódusok közül azonban egyik sem számít kriptográfiailag biztonságosnak.

Kriptográfiailag erős véletlen számok előállításához használd a java.security.SecureRandom osztályt.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg

Tanuld meg a(z) Véletlenszerűség fogalmat