logo

Generieren von Zufallszahlen in Java

Zufallszahlen werden häufig in der Programmierung für Simulationen, Spiele, Sicherheit usw. verwendet. Es gibt mehrere Möglichkeiten, Zufallszahlen mithilfe integrierter Methoden und Klassen in Java zu generieren. Die am häufigsten verwendeten Ansätze sind unten aufgeführt:

So deaktivieren Sie den Entwicklermodus
  • java.util.Random-Klasse
  • Math.random()-Methode (gibt doppelte Werte zurück)
  • ThreadLocalRandom-Klasse (eingeführt in Java 7)

Lassen Sie uns jeden dieser Ansätze einzeln im Detail untersuchen

1. Verwendung von java.util.Random

Mit Hilfe dieser Klasse können wir Zufallszahlen unterschiedlichen Typs (int double long boolean etc.) generieren.



Schlüsselmethoden:

  • nextInt(): Diese Methode generiert eine zufällige Ganzzahl (vollständiger Bereich einschließlich Negativer).
  • nextInt(int gebunden): Diese Methode generiert eine zufällige Ganzzahl zwischen 0 (einschließlich) und gebunden (exklusiv).
  • nextDouble(): Diese Methode generiert ein zufälliges Double zwischen 0,0 (einschließlich) und 1,0 (exklusiv).
  • nextBoolean(): Zufällig wahr oder falsch

Beispiel :

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

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

Generieren von Zahlen in einem bestimmten Bereich

Die Formel zum Generieren einer Zufallszahl mit einem bestimmten Bereich ist unten aufgeführt:

Zufälliger Rand = new Random();

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

Notiz: min und max sind unsere untere und obere Grenze der Anzahl.

Beispiel:

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

Ausgabe
Generated numbers are within 50 to 100 55 51 51 


2. Verwendung von Math.random()

Der Matheunterricht enthält verschiedene Methoden zum Durchführen verschiedener numerischer Operationen wie der Berechnung von Potenzierungslogarithmen usw. Eine dieser Methoden ist zufällig() Diese Methode gibt einen Double-Wert mit einem positiven Vorzeichen größer oder gleich 0,0 und kleiner als 1,0 zurück. Die zurückgegebenen Werte werden pseudozufällig ausgewählt. Mit dieser Methode können nur Zufallszahlen vom Typ „Doubles“ generiert werden.

Beispiel:

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

Ausgabe
Random doubles: 0.38601320746656065 Random doubles: 0.9209882942481417 

Generieren von Zahlen in einem bestimmten Bereich

Hier ist die Formel zum Generieren einer Zufallszahl mit einem bestimmten Bereich, wobei Min und Max unsere untere und obere Grenze der Zahl sind:

Netzwerkbetriebssystem

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

Beispiel:

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

Ausgabe
Generated numbers are within 50 to 100 82 68 77 


3. Verwenden von ThreadLocalRandom

Dies ist die empfohlene Methode in Umgebungen mit mehreren Threads, da dadurch Konflikte reduziert werden.

Schlüsselmethoden:

  • current().nextInt(): Zufällige Ganzzahl (vollständiger Bereich)
  • current().nextInt(min max + 1): Zufällige Ganzzahl im Bereich (ich habe dieses begrenzte Beispiel hinzugefügt)
  • current().nextDouble(): Zufälliges Doppel (0,0 bis 1,0)
  • current().nextBoolean(): Zufällig wahr oder falsch

Beispiel:

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

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