CodeGym /Java blog /Véletlen /Java.util.Véletlenszerű osztály
John Squirrels
Szint
San Francisco

Java.util.Véletlenszerű osztály

Megjelent a csoportban

Mi a java.util.Random osztály a Java nyelven?

A java.util.Random osztály pszeudovéletlen számok generálására szolgál. Az osztály által megvalósított metódusok különböző véletlenszerű adattípusok generálására szolgálnak, például int, double és float. Tehát a véletlen számoknak két fő típusa van, a statisztikailag véletlenszerű és az álvéletlen számok . A statisztikailag véletlenszerű számok (mint az egyszerű véletlen számok a matematikában) olyan értékek halmaza, amelyeknek nincs felismerhető mintája. Például egy kockával 10-szer dobva minden alkalommal egy véletlen számot generál, amelynek nincs felismerhető mintája.

Mik azok a pszeudo véletlen számok?

Ez egy statisztikailag véletlenszerű, de ismert kiindulási ponttal rendelkező értékek halmaza . A Java nyelven minden pszeudovéletlen számot egy algoritmus állít elő. Tehát általában egy ciklus minden alkalommal megismétlődik, amikor a java.util.Random véletlen számot generál. A Java véletlenszám-generátora statisztikailag véletlenszerű számokat állít elő, de ismert kiindulási ponttal, algoritmus által generálva. Ez teszi ezeket az értékeket álvéletlenné.

A java.util.Random osztály kriptográfiailag nem biztonságos?

Kriptográfiailag nem biztonságos, mert algoritmusokat implementáltak véletlen számok generálására. Ennek eredményeként egy személy, aki ismeri az algoritmus működését, nem vesz sok időt az érzékeny adataihoz való hozzáféréshez. Tehát ha bizonyos biztonsági alkalmazásokkal dolgozik, amelyek bizonyos érzékeny adatok védelméhez szükségesek, vagy véletlenszerű jelszavakat kell generálnia, akkor jobb, ha elkerüli ennek az osztálynak a használatát. Sok esetben hasznos, mint például véletlen szám generálása a kockadobáshoz ludóban, szerencsejátékban, feldobásban vagy más olyan területen, ahol a kívánt eredmény megjósolhatatlan.

Módszer nyilatkozat

Az osztály metódusainak használatához először importálnia kell az as csomagból

import java.util.Random;
Az importálás után létre kell hoznia egy ilyen osztályú objektumot, mint pl

Random randomNumbers = new Random();
Továbblépve nézzünk meg különböző példákat a java.util.Random osztály használatára.

Példa


import java.util.Random;

public class RandomClassExample1 {

	public static void main(String[] args) {

		// create random object
		Random randomNumbers = new Random();
		
		System.out.println("----------Random Boolean---------" );
		/*
		 * Returns the next pseudo random boolean value which 
		 * may be used in a toss for a match
		 */
		boolean value = randomNumbers.nextBoolean();
		System.out.println("The random boolean value is: " + value);
		
		/*
		 * Returns the next pseudo random integer value between 0 and 5  
		 * because if we use '6' then, it will give random numbers from 0 to 6 
		 * hence incrementing it by 1 you can use it as a result of a dice roll
		 */
		System.out.println("\n----------Random Integer---------" );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		System.out.println("Die Roll: " + (randomNumbers.nextInt(6)+1) );
		
		// return the next pseudo random long value
		Long val = randomNumbers.nextLong();
		System.out.println("\n----------Random Long---------" );
		System.out.println("Random Long value: " + val);
		
		/*
		 * Generates random bytes and puts them in an array, which you can for some
		 * desired unpredictable result that is summing all the values in the array
		 */
		
		System.out.println("\n----------Random Bytes---------" );
		byte[] bytes = new byte[8];
		randomNumbers.nextBytes(bytes);
		
		System.out.print("These are the random bytes = [ ");
		for (int i = 0; i < bytes.length; i++) {
			System.out.printf("%d ", bytes[i]);
		}
		System.out.println("]");
	}

}

Kimenet

----------Véletlen logikai érték ---------- A véletlen logikai érték: true ----------Véletlen egész szám --------- Halálj meg Tekercs: 4 Die tekercs: 6 Die tekercs: 1 Die tekercs: 1 Die tekercs: 3 ---------- Véletlenszerű --------- Véletlenszerű hosszú érték: -6029959293504570824 ---- ------Véletlen bájtok --------- Ezek a véletlenszerű bájtok = [ -37 90 -98 -70 23 -111 19 108 ]

Mód

Most megvitatjuk az osztály által biztosított néhány metódust, szem előtt tartva, hogy a véletlenszámok az osztályunk objektuma vagy példánya.
  1. doubles() :

    Ez a metódus pszeudovéletlenszerűen generált kettős értékek végtelen sorozatát adja vissza. Most nézzük meg, hogyan kell használni ezt a módszert.

    
    randomNumbers.doubles();
    
  2. ints() :

    Ez a metódus pszeudovéletlenszerűen generált egész értékek végtelen sorozatát adja vissza. A metódus meghívásához használhatja a következő szkriptet.

    
    randomNumbers.ints();
    
  3. longs() :

    Ez a metódus pszeudovéletlenszerűen generált hosszú értékek végtelen sorozatát adja vissza. A metódus meghívására a következő szkript szolgál.

    
    randomNumbers.longs();
    
  4. nextBoolean() :

    Ez a metódus a következő egyenletes eloszlású pszeudovéletlen logikai értéket adja vissza a véletlenszám-generátor sorozatból. Az egyenletes eloszlás téglalap alakú, vagyis az eloszlásban minden érték egyenlő valószínűséggel rendelkezik. Ezt a módszert a következőképpen kell használni.

    
    randomNumbers.nextBoolean();
    
  5. nextInt(int n) :

    Ez a metódus a következő egyenletes eloszlású pszeudovéletlen egész értéket adja vissza a véletlenszám-generátor sorozatából a 0 és a megadott érték kizárása között. Tekintse meg gyorsan, hogyan kell használni ezt a módszert.

    
    randomNumbers.nextInt(10);
    

Következtetés

Reméljük, hogy mostanra megértette, mi a java.util.Random , és hogyan kell megvalósítani a különböző módszereit, és milyen forgatókönyvben kell használni. Ezt az osztályt mindig használhatja Java-ban. Nyugodtan gyakoroljon, és térjen vissza ide, amikor további segítségre van szüksége. Boldog tanulást!
Hozzászólások
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION