CodeGym/Java blogg/Slumpmässig/Java.util.Random klass
John Squirrels
Nivå
San Francisco

Java.util.Random klass

Publicerad i gruppen

Vad är java.util.Random-klass i Java?

Klassen java.util.Random används för att generera pseudoslumptal. Metoderna som implementeras av denna klass används för att generera olika slumpmässiga datatyper som int, double och float. Så det finns två huvudtyper av slumptal, statistiskt slumpmässiga och pseudoslumptal . De statistiskt slumpmässiga talen (som enkla slumptal i matematik) är en uppsättning värden som inte har ett igenkännbart mönster. Till exempel, att kasta en tärning 10 gånger kommer att generera ett slumpmässigt tal varje gång som inte har något igenkännbart mönster.

Vad är pseudoslumptal?

Det är en uppsättning värden som är statistiskt slumpmässiga men som har en känd utgångspunkt . I Java produceras varje pseudoslumptal genom en algoritm. Så vanligtvis upprepas en cykel varje gång java.util.Random genererar ett slumptal. En slumptalsgenerator i Java kommer att producera statistiskt slumptal men med en känd utgångspunkt, genererad av en algoritm. Det gör dessa värderingar till pseudoslumpar.

Är java.util.Random klass kryptografiskt osäker?

Det är kryptografiskt osäkert eftersom det har implementerade algoritmer för att generera slumptal. Som ett resultat av vilket en person som vet hur algoritmen fungerar inte kommer att ta mycket tid att komma åt dina känsliga data. Så om du arbetar med vissa säkerhetsapplikationer, behövs för att säkra vissa känsliga data eller behöver generera slumpmässiga lösenord så är det bättre att undvika att använda den här klassen. Det är användbart i många fall som att generera ett slumpmässigt tal för ditt tärningskast i ludo, hasardspel, att kasta en match eller andra områden där ditt önskade resultat är oförutsägbart.

Metoddeklaration

För att använda metoderna i denna klass måste du först importera den från paketet som
import java.util.Random;
Efter importen måste du skapa ett objekt av denna klass som
Random randomNumbers = new Random();
När vi går vidare, låt oss ta en titt på olika exempel för att använda klassen java.util.Random .

Exempel

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

----------Slumpmässigt booleskt--------- Det slumpmässiga booleska värdet är: sant ----------Slumpmässigt heltal--------- Die Kast: 4 tärningar: 6 tärningar: 1 tärningar: 1 tärningar: 3 ----------Slumpmässigt långt--------- Slumpmässigt långt värde: -6029959293504570824 ---- ------Slumpmässiga bytes--------- Dessa är de slumpmässiga byten = [ -37 90 -98 -70 23 -111 19 108 ]

Metoder

Nu kommer vi att diskutera några av metoderna som tillhandahålls av denna klass, med tanke på att randomNumbers är objektet eller instansen av vår klass.
  1. dubbel() :

    Denna metod returnerar en oändlig serie av pseudoslumpmässigt genererade dubbla värden. Låt oss nu se hur man använder den här metoden.

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

    Denna metod returnerar en oändlig serie av pseudoslumpmässigt genererade heltalsvärden. Du kan använda följande skript för att anropa den här metoden.

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

    Denna metod returnerar en oändlig serie av pseudoslumpmässigt genererade långa värden. Följande skript används för att anropa denna metod.

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

    Denna metod returnerar nästa enhetligt fördelade pseudoslumpmässiga booleska värde från slumptalsgeneratorsekvensen. Den enhetliga fördelningen är rektangulär, vilket innebär att varje värde i fördelningen har lika sannolikhet. Så här använder du den här metoden.

    randomNumbers.nextBoolean();
  5. nästaInt(int n) :

    Denna metod returnerar nästa enhetligt fördelade pseudoslumptalsvärde från slumptalsgeneratorsekvensen mellan 0 inklusive och det angivna värdet exklusivt. Få en snabb bild av hur du använder den här metoden.

    randomNumbers.nextInt(10);

Slutsats

Vi hoppas att du vid det här laget förstår vad java.util.Random är och hur du implementerar dess olika metoder och i vilket scenario du ska använda det. Du kan alltid använda den här klassen i java. Träna gärna och kom tillbaka hit när du behöver mer hjälp. Lycka till med lärandet!
Kommentarer
  • Populär
  • Ny
  • Gammal
Du måste vara inloggad för att lämna en kommentar
Den här sidan har inga kommentarer än