logo

Generera slumptal i Java

Slumpmässiga siffror används ofta i programmering för simuleringar av spelsäkerhet etc. Det finns flera sätt att generera slumptal med inbyggda metoder och klasser i Java. De mest använda metoderna listas nedan:

  • java.util.Slumpmässig klass
  • Math.random()-metoden (returnerar dubbla värden)
  • ThreadLocalRandom-klass (introducerad i Java 7)

Låt oss utforska var och en av dessa tillvägagångssätt en efter en i detalj

1. Använda java.util.Random

Med hjälp av denna klass kan vi generera slumptal av olika typer (int double long boolean etc.).



Viktiga metoder:

  • nextInt(): Denna metod genererar ett slumpmässigt heltal (helt intervall inklusive negativ)
  • nextInt(int bound): Denna metod genererar ett slumpmässigt heltal mellan 0 (inklusive) och bundet (exklusivt)
  • nextDouble(): Denna metod genererar en slumpmässig dubbelgång mellan 0,0 (inklusive) och 1,0 (exklusivt)
  • nextBoolean(): Slumpmässigt sant eller falskt

Exempel :

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);  } } 

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

Generera siffror i ett specifikt intervall

Formeln för att generera ett slumptal med ett specifikt intervall listas nedan:

Random rand = new Random();

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

Notera: min och max är vår nedre och högre gräns för antal.

övervakad maskininlärning

Exempel:

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);  } } 

Produktion
Generated numbers are within 50 to 100 55 51 51 


2. Använda Math.random()

De Matematikklass innehåller olika metoder för att utföra olika numeriska operationer såsom beräkning av exponentieringslogaritmer etc. En av dessa metoder är slumpmässig() denna metod returnerar ett dubbelt värde med ett positivt tecken större än eller lika med 0,0 och mindre än 1,0. De returnerade värdena väljs pseudoslumpmässigt. Den här metoden kan bara generera slumpmässiga antal av typen Doubles.

Exempel:

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());  } } 

Produktion
Random doubles: 0.38601320746656065 Random doubles: 0.9209882942481417 

Generera siffror i ett specifikt intervall

Här är formeln för att generera ett slumpmässigt tal med specifikt intervall där min och max är vår nedre och högre gräns för antal:

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

Exempel:

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)));   } } 

Produktion
Generated numbers are within 50 to 100 82 68 77 


3. Använda ThreadLocalRandom

Detta är det rekommenderade sättet i flertrådiga miljöer eftersom det minskar konflikter.

Viktiga metoder:

  • aktuell().nextInt(): Slumpmässigt heltal (helt intervall)
  • current().nextInt(min max + 1): Slumpmässigt heltal i intervallet (jag har lagt till detta avgränsade exempel)
  • current().nextDouble(): Slumpmässig dubbel (0,0 till 1,0)
  • current().nextBoolean(): Slumpmässigt sant eller falskt

Exempel:

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);  } } 

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