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 somimport 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
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.-
dobler() :
Denne metoden returnerer en uendelig serie med pseudotilfeldig genererte doble verdier. La oss nå se hvordan du bruker denne metoden.
randomNumbers.doubles();
-
ints() :
Denne metoden returnerer en uendelig serie med pseudotilfeldig genererte heltallsverdier. Du kan bruke følgende skript for å kalle denne metoden.
randomNumbers.ints();
-
longs() :
Denne metoden returnerer en uendelig serie med pseudotilfeldig genererte lange verdier. Følgende skript brukes til å kalle denne metoden.
randomNumbers.longs();
-
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();
-
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);