logo

Generiranje naključnih števil v Javi

Naključna števila se pogosto uporabljajo pri programiranju za simulacije, varnost iger itd. Obstaja več načinov za generiranje naključnih števil z uporabo vgrajenih metod in razredov v Javi. Spodaj so navedeni najpogosteje uporabljeni pristopi:

  • java.util.Naključni razred
  • Metoda Math.random() (vrne dvojne vrednosti)
  • Razred ThreadLocalRandom (uveden v Javi 7)

Raziščimo vsakega od teh pristopov enega za drugim podrobno

1. Uporaba java.util.Random

S pomočjo tega razreda lahko generiramo naključna števila različnih vrst (int double long boolean itd.).



Ključne metode:

uvoz skenerja java
  • nextInt(): Ta metoda ustvari naključno celo število (celoten obseg, vključno z negativi)
  • nextInt (int vezano): Ta metoda ustvari naključno celo število med 0 (vključno) in vezano (izključno)
  • nextDouble(): Ta metoda ustvari naključni dvojnik med 0,0 (vključno) in 1,0 (izključno)
  • nextBoolean(): Naključno drži ali ne drži

Primer :

Java
// Generating random number using java.util.Random; import java.util.Random; public class Geeks{    public static void main(String[] args) {    // Creating the instance of Random class  Random r= new Random();  // Generate random integers in range 0 to 999  int r1 = r.nextInt(1000);  int r2 = r.nextInt(1000);  // Printing random integers  System.out.println('Random Integers: ' + r1);  System.out.println('Random Integers: ' + r2);  // Generate random doubles  double rd1 = r.nextDouble();  double rd2 = r.nextDouble();  // Printing random doubles  System.out.println('Random Doubles: ' + rd1);  System.out.println('Random Doubles: ' + rd2);  } } 

Izhod
Random Integers: 39 Random Integers: 190 Random Doubles: 0.4200728082969115 Random Doubles: 0.9327571841228275 

Ustvarjanje števil v določenem obsegu

enakost nizov v Javi

Spodaj je navedena formula za ustvarjanje naključnega števila z določenim obsegom:

Naključno rand = novo Naključno();

int randomNum = rand.nextInt(max - min + 1) + min;

Opomba: min in max sta naša spodnja in zgornja meja števila.

primer:

Java
// Generating random number in a specific range  import java.io.*; import java.util.*; class Geeks {    public static void main (String[] args) {  Random r = new Random();  int max=100min=50;  System.out.println('Generated numbers are within '+ min +' to '+ max);  System.out.println(r.nextInt(max - min + 1) + min);  System.out.println(r.nextInt(max - min + 1) + min);  System.out.println(r.nextInt(max - min + 1) + min);  } } 

Izhod
Generated numbers are within 50 to 100 55 51 51 


2. Uporaba Math.random()

The razred matematike vsebuje različne metode za izvajanje različnih numeričnih operacij, kot je izračun potencialnih logaritmov itd. Ena od teh metod je naključno() ta metoda vrne dvojno vrednost s pozitivnim predznakom, večjim ali enakim 0,0 in manjšim od 1,0. Vrnjene vrednosti so izbrane psevdonaključno. Ta metoda lahko ustvari le naključna števila tipa Doubles.

primer:

polje s seznamom java
Java
// Java program to demonstrate working of  // Math.random() to generate random numbers import java.util.*;   public class Geeks {  public static void main(String args[])  {  // Generating random doubles  System.out.println('Random doubles: ' + Math.random());  System.out.println('Random doubles: ' + Math.random());  } } 

Izhod
Random doubles: 0.38601320746656065 Random doubles: 0.9209882942481417 

Ustvarjanje števil v določenem obsegu

Tukaj je formula za ustvarjanje naključnega števila z določenim obsegom, kjer sta min in max naša spodnja in zvišana meja števila:

string.format java

int randomNum = min + (int)(Math.random() * ((max - min) + 1));

primer:

Java
// Demonstrating how to generate random  // number within a specific range import java.io.*; import java.util.*; class Geeks {    public static void main (String[] args) {  int max=100min=50;  System.out.println('Generated numbers are within '+min+' to '+max);  System.out.println(min + (int)(Math.random() * ((max - min) + 1)));  System.out.println(min + (int)(Math.random() * ((max - min) + 1)));  System.out.println(min + (int)(Math.random() * ((max - min) + 1)));   } } 

Izhod
Generated numbers are within 50 to 100 82 68 77 


3. Uporaba ThreadLocalRandom

To je priporočen način v večnitnih okoljih, saj zmanjša spor.

Ključne metode:

  • trenutni().nextInt(): Naključno celo število (celoten obseg)
  • current().nextInt(min max + 1): Naključno celo število v območju (dodal sem ta omejen primer)
  • trenutni().nextDouble(): Naključno dvojno (0,0 do 1,0)
  • trenutni().nextBoolean(): Naključno drži ali ne drži

primer:

Java
// Demonstrates how to generate random integers  // doubles and booleans using ThreadLocalRandom import java.util.concurrent.ThreadLocalRandom; public class Geeks {  public static void main(String[] args) {  // Generate random integers in range 0 to 999  // Random number between 0 and 999  int r1 = ThreadLocalRandom.current().nextInt(1000);    // Random number between 0 and 999  int r2 = ThreadLocalRandom.current().nextInt(1000);   // Print random integers  System.out.println('Random Integers: ' + r1);  System.out.println('Random Integers: ' + r2);  // Generate Random doubles between 0.0 (inclusive)   // and 1.0 (exclusive)  double rd1 = ThreadLocalRandom.current().nextDouble();  double rd2 = ThreadLocalRandom.current().nextDouble();  // Print random doubles  System.out.println('Random Doubles: ' + rd1);  System.out.println('Random Doubles: ' + rd2);  // Generate random booleans  boolean rb1 = ThreadLocalRandom.current().nextBoolean();  boolean rb2 = ThreadLocalRandom.current().nextBoolean();  // Print random Booleans  System.out.println('Random Booleans: ' + rb1);  System.out.println('Random Booleans: ' + rb2);  } } 

Izhod
Random Integers: 812 Random Integers: 461 Random Doubles: 0.7420865203902993 Random Doubles: 0.9580683365617423 Random Booleans: false Random Booleans: false