CodeGym /Java-blogg /Tilfeldig /Java.util.Random klasse
John Squirrels
Nivå
San Francisco

Java.util.Random klasse

Publisert i gruppen

Hva er java.util.Random-klassen i Java?

Java.util.Random - klassen brukes til å generere pseudorandom-tall. Metodene implementert av denne klassen brukes til å generere forskjellige tilfeldige datatyper som int, double og float. Så det er to hovedtyper av tilfeldige tall, statistisk tilfeldige og pseudotilfeldige tall . De statistisk tilfeldige tallene (som enkle tilfeldige tall i matematikk), er et sett med verdier som ikke har et gjenkjennelig mønster. For eksempel, å kaste en terning 10 ganger vil generere et tilfeldig tall hver gang som ikke har noe gjenkjennelig mønster.

Hva er pseudo-tilfeldige tall?

Det er et sett med verdier som er statistisk tilfeldige, men som har et kjent utgangspunkt . I Java produseres hvert pseudorandomtall gjennom en algoritme. Så vanligvis gjentas en syklus hver gang java.util.Random genererer et tilfeldig tall. En tilfeldig tallgenerator i Java vil produsere statistisk tilfeldige tall, men med et kjent utgangspunkt, generert av en algoritme. Det gjør disse verdiene til pseudotilfeldige.

Er java.util.Random-klassen kryptografisk usikker?

Det er kryptografisk usikkert fordi det har implementert algoritmer for å generere tilfeldige tall. Som et resultat av dette vil en person som vet hvordan algoritmen fungerer, ikke ta mye tid på å få tilgang til dine sensitive data. Så hvis du jobber med noen sikkerhetsapplikasjoner, trenger å sikre noen sensitive data, eller trenger å generere tilfeldige passord, er det bedre å unngå å bruke denne klassen. Det er nyttig i mange tilfeller som å generere et tilfeldig tall for terningkastet ditt i ludo, gambling, å kaste for en kamp eller andre områder der ønsket resultat er uforutsigbart.

Metodeerklæring

For å bruke metodene til denne klassen må du først importere den fra pakken som

import java.util.Random;
Etter import, må du lage et objekt av denne klassen som

Random randomNumbers = new Random();
For å gå videre, la oss ta en titt på forskjellige eksempler for å bruke 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("]");
	}

}

Produksjon

----------Tilfeldig boolsk--------- Den tilfeldige boolske verdien er: sann ----------Tilfeldig heltall--------- Die Kast: 4 terningkast: 6 terningkast: 1 terningkast: 1 terningkast: 3 ----------Tilfeldig lang-------- Tilfeldig lang verdi: -6029959293504570824 ---- ------Tilfeldige byte--------- Dette er de tilfeldige bytene = [ -37 90 -98 -70 23 -111 19 108 ]

Metoder

Nå skal vi diskutere noen av metodene som tilbys av denne klassen, med tanke på at randomNumbers er objektet eller forekomsten av klassen vår.
  1. dobler() :

    Denne metoden returnerer en uendelig serie med pseudotilfeldig genererte doble verdier. La oss nå se hvordan du bruker denne metoden.

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

    Denne metoden returnerer en uendelig serie med pseudotilfeldig genererte heltallsverdier. Du kan bruke følgende skript for å kalle denne metoden.

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

    Denne metoden returnerer en uendelig serie med pseudotilfeldig genererte lange verdier. Følgende skript brukes til å kalle denne metoden.

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

    Denne metoden returnerer den neste jevnt fordelte pseudorandom boolske verdien fra tilfeldig tallgeneratorsekvensen. Den ensartede fordelingen er rektangulær, noe som betyr at hver verdi i fordelingen har lik sannsynlighet. Slik bruker du denne metoden.

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

    Denne metoden returnerer den neste jevnt fordelte pseudotilfeldige heltallsverdien fra tilfeldig tallgeneratorsekvensen mellom 0 inklusive og den angitte verdien eksklusiv. Få en rask oversikt over hvordan du bruker denne metoden.

    
    randomNumbers.nextInt(10);
    

Konklusjon

Vi håper du nå forstår hva java.util.Random er og hvordan du implementerer de forskjellige metodene og i hvilket scenario du skal bruke det. Du kan alltid bruke denne klassen i java. Tren gjerne og kom tilbake hit når du trenger mer hjelp. God læring!
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION