Java >> Java tutorial >  >> Java

Sådan genereres tilfældige tal i Java

I Java eksisterer der forskellige tilfældige tal, inklusive heltal, flydende, dobbelt, lang og boolsk, skabt inden for et givet område. I Java er der fire teknikker til at generere tilfældige tal.

Tilfældig klasse

Den første metode er at bruge en tilfældig klasse. Følg nedenstående trin for at bruge den tilfældige klasse til at generere tilfældige tal:

  • Importer klassen java.util.Random
  • Oprettelse af en ny Random instansklasse ved at skrive Random rand =new. Random()
  • Bring en af ​​følgende rand-objektmetoder:
  • Int(upperbound) returnerer et tilfældigt tal mellem 0 og upperbound-1.next
  • Float() returnerer en float med en værdi mellem 0,0 og 1,0.
  • Double() returnerer en dobbelt med en værdi mellem 0,0 og 1,0.

Generering af tilfældige tal i Java med eksempler

import java.util.Random;

class RandomNumberGeneration {

public static void main( String args[] ) {
  Random rand_val = new Random(); //instance of random class
  int upperbound = 30; //generating random values from 0-29
  int rand_integer = rand.nextInt(upperbound);
  double rand_double=rand_val .nextDouble();
  float rand_float=rand_val .nextFloat();

  System.out.println("Random integers from 0 to" + (upperbound-1) + " : "+ rand_integer );
  System.out.println("Random float value between 0.0 and 1.0 : "+float_random);
  System.out.println("Random double value between 0.0 and 1.0 : "+rand_double);
}
}

Brug ThreadLocalRandom til at generere tilfældige tal

Følg instruktionerne nedenfor for at oprette tilfældige tal ved hjælp af ThreadLocalRandom-klassen:

  • Importer klassen java.util.concurrent
  • ThreadLocalRandom – Kald metoden.
  • ThreadLocalRandom.current().next bruges til at oprette tilfældige tal af typen int – Int()
  • ThreadLocalRandom.current.next bruger Int() til at generere et tilfældigt tal af typen double () – Double()
  • ThreadLocalRandom.current().nextBoolean() bruges til at oprette tilfældige tal af typen boolean
import java.util.concurrent.ThreadLocalRandom;
class RandomNumberGeneration {
public static void main( String args[] ) {
// Generation of random integer values
int rand_int = ThreadLocalRandom.current().nextInt();


// Display random integers
  System.out.println("Random integer values: " + rand_int);

  // Generation of double Random values
  double rand_double = ThreadLocalRandom.current().nextDouble();

  // Display random doubles
  System.out.println("Random Double Values: " + rand_double);

  //Generating Random Boolean Values  
  boolean rand_boolean = ThreadLocalRandom.current().nextBoolean();

  // Display random booleans
  System.out.println("Random Boolean Values: " + rand_boolean);
}
}

Java 8s tilfældige talgenerator

Random-klassen indeholder nu en ny metode int(), introduceret i Java 8. Før vi bruger metoden, skal vi først importere pakken java.util.Random.

ints():

De pseudotilfældige int-værdier genereres på samme måde som nextInt()-metoden kaldes. Det genererer et uendeligt antal pseudorandom-heltalsværdier.

long streamSize: ints(long streamSize): ints(long streamSize): int

Metoden analyserer en lang-type parameter streamSize. Den definerer, hvor mange værdier der skal genereres. De pseudotilfældige int-værdier genereres på samme måde som nextInt()-metoden kaldes. Det returnerer også en strøm af int-værdier, der er oprettet tilfældigt. Hvis strømmens størrelse er mindre end nul, sender den en IllegalArgumentException.

ints(long streamSize, int randomNumberOrigin, int randomNumberBound):

Parametre:

  • streamSize:Antal værdier, der skal genereres.
  • NumberOrigin:Hver tilfældig værdis oprindelse.
  • NumberBound:Hvert tilfældigt tal har mange.

Det genererer en strøm af pseudotilfældige int-værdier med oprindelsen og bundet givet. Hvis nogen af ​​følgende betingelser er opfyldt, udløser det en IllegalArgumentException:

bundet stramSize 0 origin> stramSize 0 origin> stramSize 0 origin> stramSize

Parametre :

  • randomNumberOrigin:Hver tilfældig værdis oprindelse.
  • randomNumberBound:Hver tilfældig værdi er bundet

Det genererer en uendelig strøm af pseudotilfældige int-værdier med oprindelse og bund leveret. Hvis oprindelsen er lig med bundet eller større, producerer den en IllegalArgumentException. Tilsvarende genererer metoderne longs() og doubles() en strøm af henholdsvis lange og dobbelte typer. Lad os skrive et program, der bruger Random-klassens ints()-metode til at generere en strøm af tal.

import java.util.Random;
public class RandomNumberGeneration
{
public static void main(String[] args)
{
randomInts(4);
randomInts(29, 70, 110);
//getStreamOfRandomInts(30, 120);
}
//method generating integer streams of size 4
public static void findRandomInts(int int_val)
{
Random rand_val = new Random();
rand_val.ints(int_val).forEach(System.out::println);
}
//method generating 9 integer streams between 50 to 120
public static void findRandomInts(int int_val, int int_origin, int int_bound)
{
Random rand_val = new Random();
rand_val.ints(int_val, int_origin, int_bound).forEach(System.out::println);
}
}

Brug af Math.random-funktionen

Følg nedenstående trin for at generere tilfældige heltal inden for et område ved hjælp af Math.random():

  • Angiv områdets minimumsværdi.
  • Angiv områdets maksimale værdi.

Brug formlen Math.floor(Math.random()*(max-min+1)+min for at producere tal med min- og maksværdierne inkluderet). Faktisk kan du kun bruge denne metode, hvis du har brug for et tilfældigt heltal eller en flydende værdi.

class RandomNumberGeneration {

public static void main( String args[] ) {
  
int min_val = 250;
int max_val = 400;

//Generation of random integer values from 250 to 400

  System.out.println("Random integer values  from "+min_val+" to "+max_val+ ":");
  int rand_integer = (int)Math.floor(Math.random()*(max_val-min_val+1)+min_val);
  System.out.println(rand_integer);
}
}

Konklusion

Vi skal ofte lave tilfældige tal, mens vi udvikler applikationer i Java-programmering. Mange programmer kan generere tilfældige tal, såsom OTP, som validerer brugeren. Terningimplementering er en af ​​de bedste illustrationer af tilfældige tal. Et tilfældigt tal vises mellem 1 og 6, når vi kaster det.


Java tag