CodeGym /Java blog /Tilfældig /Java.util.Random klasse
John Squirrels
Niveau
San Francisco

Java.util.Random klasse

Udgivet i gruppen

Hvad er java.util.Random klasse i Java?

Klassen java.util.Random bruges til at generere pseudorandom-tal. Metoderne implementeret af denne klasse bruges til at generere forskellige tilfældige datatyper såsom int, double og float. Så der er to hovedtyper af tilfældige tal, statistisk tilfældige og pseudotilfældige tal . De statistisk tilfældige tal (som simple tilfældige tal i matematik) er et sæt værdier, der ikke har et genkendeligt mønster. For eksempel vil et terningkast 10 gange generere et tilfældigt tal hver gang, der ikke har noget genkendeligt mønster.

Hvad er pseudotilfældige tal?

Det er et sæt værdier, der er statistisk tilfældige, men som har et kendt udgangspunkt . I Java produceres hvert pseudorandomtal gennem en algoritme. Så typisk gentages en cyklus hver gang java.util.Random genererer et tilfældigt tal. En tilfældig talgenerator i Java vil producere statistisk tilfældige tal, men med et kendt udgangspunkt, genereret af en algoritme. Det gør disse værdier til pseudotilfældige.

Er java.util.Random klasse kryptografisk usikker?

Det er kryptografisk usikkert, fordi det har implementeret algoritmer til at generere tilfældige tal. Som et resultat af dette vil en person, der ved, hvordan algoritmen fungerer, ikke tage meget tid på at få adgang til dine følsomme data. Så hvis du arbejder med nogle sikkerhedsapplikationer, har brug for at sikre nogle følsomme data eller har brug for at generere tilfældige adgangskoder, så er det bedre at undgå at bruge denne klasse. Det er nyttigt i mange tilfælde som at generere et tilfældigt tal for dit terningkast i ludo, gambling, at kaste sig til en kamp eller andre områder, hvor dit ønskede resultat er uforudsigeligt.

Metodeerklæring

For at bruge metoderne i denne klasse skal du først importere den fra pakken som

import java.util.Random;
Efter importen skal du oprette et objekt af denne klasse som

Random randomNumbers = new Random();
Gå videre, lad os se på forskellige eksempler for at bruge klassen java.util.Random .

Eksempel


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("]");
	}

}

Produktion

----------Tilfældig boolesk--------- Den tilfældige booleske værdi er: sand ----------Tilfældigt heltal--------- Die Kast: 4 terning: 6 terning: 1 terning: 1 terning: 3 ----------Tilfældig lang-------- Tilfældig lang værdi: -6029959293504570824 ---- ------Tilfældige bytes--------- Disse er de tilfældige bytes = [ -37 90 -98 -70 23 -111 19 108 ]

Metoder

Nu vil vi diskutere nogle af de metoder, som denne klasse tilbyder, idet vi husker på, at randomNumbers er objektet eller forekomsten af ​​vores klasse.
  1. fordobler() :

    Denne metode returnerer en uendelig række af pseudotilfældigt genererede dobbeltværdier. Lad os nu se, hvordan man bruger denne metode.

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

    Denne metode returnerer en uendelig række af pseudotilfældigt genererede heltalsværdier. Du kan bruge følgende script til at kalde denne metode.

    
    randomNumbers.ints();
    
  3. længes() :

    Denne metode returnerer en uendelig række af pseudotilfældigt genererede lange værdier. Følgende script bruges til at kalde denne metode.

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

    Denne metode returnerer den næste ensartet fordelte pseudotilfældige booleske værdi fra tilfældige talgeneratorsekvensen. Den ensartede fordeling er rektangulær, hvilket betyder, at hver værdi i fordelingen har lige stor sandsynlighed. Sådan bruger du denne metode.

    
    randomNumbers.nextBoolean();
    
  5. næsteInt(int n) :

    Denne metode returnerer den næste ensartet fordelte pseudotilfældige heltalværdi fra tilfældige talgeneratorsekvensen mellem 0 inklusive og den angivne værdi eksklusive. Få et hurtigt overblik over, hvordan du bruger denne metode.

    
    randomNumbers.nextInt(10);
    

Konklusion

Vi håber, at du nu forstår, hvad java.util.Random er , og hvordan du implementerer dets forskellige metoder og i hvilket scenarie du skal bruge det. Du kan altid bruge denne klasse i java. Du er velkommen til at øve dig og vende tilbage hertil, når du har brug for mere hjælp. God læring!
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION